在/store/index.js
中,我有:
import Vue from "vue";
import Vuex from "vuex";
import auth from "./modules/auth";
然后在/store/modules/auth.js中,我拥有:
export const actions = {
login({ commit, dispatch }, payload) {
...
}
}
但是当尝试通过执行dispatch("auth/login", {})
从任何组件分派我的login()操作时,出现此错误:
[vuex]未知操作类型:登录
为什么?
根据Shivam Singh的评论,[编辑]这是我的导出部分:
export default new Vuex.Store({
state: {
token: null
},
getters: {},
mutations: {},
actions: {},
modules: {
auth: {
namespaced: true
}
}
});
在auth
中添加modules: {}
后,出现此错误:
未捕获的TypeError:无法读取未定义的属性“ getter”
答案 0 :(得分:0)
/store/modules/auth.js
import Vue from "vue";
import Vuex from "vuex";
import auth from "./modules/auth";
export default new Vuex.Store({
state: {
token: null
},
getters: {},
mutations: {},
actions: {},
modules: {
auth: { // it's registry name, will be used while accessing module content.
namespaced: true,
...auth // actual module content.
}
}
});
注册模块时,您未提供实际的模块 内容。
参考vue doc:https://vuex.vuejs.org/guide/modules.html#namespacing