【发布时间】:2021-11-28 17:49:58
【问题描述】:
我正在尝试注册一个 Vuex 模块但没有成功。这是我的代码:
商店/index.js:
import Vuex from 'vuex';
import resourcesModule from './resources';
import axios from '@/helpers/axiosInterceptor';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
resources: resourcesModule
},
state: {...}})
商店/资源/index.js
export default {
state: {
resources: []
},
actions: {
fetchResources(store) {
const request = axios.get('/api/musical_resources');
request.then((res) => {
store.commit('setResources', res.data);;
});
return request;
}
},
mutations: {
setResources(state, payload) {
state.resources = payload;
}
},
getters: {
resources({resources}) {
return resources;
}
}
};
我正在尝试从另一个组件调度“fetchResources”操作,这给了我“[vuex] 未知操作类型:fetchResources”
当我检查 store 对象时,在 _modules 属性中只有“root”属性,所以我怀疑注册模块时可能遗漏了一些东西。
当我 console.log(resourcesModules);在stores/index.js 文件中一切看起来都很好。
那么,我的问题是什么?非常感谢
编辑:
也在 stores/index.js 中尝试过这个:
import Vue from 'vue';
import Vuex from 'vuex';
import axios from '@/helpers/axiosInterceptor';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
resources: {
state() {
return {
resources: []
}
},
actions: {
fetchResources(store) {
const request = axios.get('/api/musical_resources');
request.then((res) => {
store.commit('setResources', res.data);;
});
return request;
}
},
mutations: {
setResources(state, payload) {
state.resources = payload;
}
},
getters: {
resources({ resources }) {
return resources;
}
}
}
},
state: {...}})
没有成功
【问题讨论】:
标签: javascript vue.js vuex vuex-modules