Javascript Vuex:引用操作中的modules变量

Javascript Vuex:引用操作中的modules变量,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我的Vue应用程序中有以下全局存储: // N.B. These Stores Are Modularised, please reference: [https://vuex.vuejs.org/guide/modules.html] for details. const store = new Vuex.Store({ modules: { surfers: surfers, surfSites: surfSites, surfTickets: surfTicke

我的Vue应用程序中有以下全局存储:

// N.B. These Stores Are Modularised, please reference: [https://vuex.vuejs.org/guide/modules.html] for details.
const store = new Vuex.Store({
  modules: {
    surfers: surfers,
    surfSites: surfSites,
    surfTickets: surfTickets
  },
  actions: {
    resetAllState: ({ dispatch, modules }) => {
      console.log(modules); // Undefined
      console.log(store.modules); // Undefined
      console.log(this.modules); // Error in v-on handler: "TypeError: _this is undefined"
      for (const currentModule in modules) {
        console.log(`Resetting Module State: ${module}`);
        if (modules[currentModule].state.hasOwnProperty("initialState")) {
          dispatch("resetModuleState", currentModule);
        }
      }
    },
    resetModuleState: (currentModule) => {
      console.log(`Resetting Module State: ${currentModule}`);
    }
  }
});
我的目标是,这些操作将在模块中循环,并发送一个重置状态操作,当我注销当前用户时调用该操作

但是,模块未定义,store.modules和this.modules都未定义,或者通过未定义的相关错误


那么,如果可能的话,我如何以这种方式动态访问模块呢?

上述代码有问题,操作只能访问

{ commit, dispatch, getters } as params
但您试图在参数中传递模块,但仍然可以通过下面的方法访问模块

在操作resetAllState中使用此代码


上述代码有问题,操作只能访问

{ commit, dispatch, getters } as params
但您试图在参数中传递模块,但仍然可以通过下面的方法访问模块

在操作resetAllState中使用此代码



模块不应该被直接访问。可能应该通过迭代根状态键来完成。@Wind Up Lord Vexxos让我知道下面的答案是否解决了您的问题issue@chans感谢你的回答,但不幸的是,没有。我在v-on处理程序中得到了相同的错误:TypeError:\u这是undefined@WindUpLordVexxos,感谢您的回复,我们可以解决您的问题,让我们知道您遇到了什么错误rightnow@chans非常感谢。请看我下面的回复:模块不应该被直接访问。可能应该通过迭代根状态键来完成。@Wind Up Lord Vexxos让我知道下面的答案是否解决了您的问题issue@chans感谢你的回答,但不幸的是,没有。我在v-on处理程序中得到了相同的错误:TypeError:\u这是undefined@WindUpLordVexxos,感谢您的回复,我们可以解决您的问题,让我们知道您遇到了什么错误rightnow@chans非常感谢。请参阅下面的回复:不幸的是,我仍然在v-on处理程序中得到错误:TypeError:\u这是未定义的,删除代码会在控制台中删除错误…放置console.logthis并检查此对象中的值,您将有权访问当前存储,通过这种方式,您可以访问modulesconsole.logthis is undefined`。请检查应答中的更新代码并尝试,现在请查看控制台日志消息用普通javascript函数替换箭头函数。不幸的是,我仍然在v-on处理程序中收到错误:TypeError:\u这是未定义的,删除代码将删除控制台中的错误…放置console.logthis并检查此对象中的值,您将有权访问当前存储,这样您就有权访问modulesconsole.logthis未定义“”。请在应答中检查更新的代码并重试,现在查看控制台日志messagereplacearrow函数和普通javascript函数