无法调度商店子文件中定义的操作

时间:2019-12-03 10:40:21

标签: vue.js vuex

/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”

1 个答案:

答案 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