Vuex调用模块时报unknown action type: signUp错误如何解决
问题根因
你的Vuex auth子模块配置不符合规范,Vuex子模块不需要实例化Vuex.Store,仅需导出普通配置对象即可。你当前的auth模块导出的是一个返回Store实例的工厂函数,根Store注册模块时无法识别其内部定义的action、state等配置,因此无论是直接调用signUp还是带命名空间的auth/signUp都会提示找不到对应action。
修复方案
- 修改
src/store/modules/auth.js代码,删除冗余的实例化逻辑,直接导出模块配置对象:
// 子模块无需重复引入Vue、Vuex,也不需要再次调用Vue.use(Vuex) export default { // 多模块场景建议开启命名空间,避免不同模块的方法/状态命名冲突 namespaced: true, state() { return {} }, mutations: {}, actions: { signUp({commit, getters}, data) { debugger }, }, }
- 对应调整调用方法即可(开启命名空间的前提下):
methods:{ signUp() { this.$store.dispatch('auth/signUp', this.form) } }
如果未开启namespaced: true,子模块的action会被注册到全局,直接调用this.$store.dispatch('signUp', this.form)也可以正常生效。
内容的提问来源于stack exchange,提问作者Miqayel Petrosyan
相关产品推荐
相关产品推荐

