【发布时间】:2020-03-04 11:30:52
【问题描述】:
我的 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}`);
}
}
});
我的目标是动作将循环通过模块,并发送一个重置状态动作,当我注销当前用户时调用它。
但是,modules 未定义,store.modules 和 this.modules 都未定义或通过未定义相关错误...
那么,如果可能的话,我该如何以这种方式动态访问模块?
【问题讨论】:
-
模块不应该被直接访问。可能应该通过迭代根状态键来完成。
-
@Wind Up Lord Vexxos 让我知道以下答案是否解决了您的问题
-
@chans 欣赏答案,但不幸的是,不是。我得到了同样的
Error in v-on handler: "TypeError: _this is undefined" -
@WindUpLordVexxos,感谢您的回复,我们可以解决您的问题,让我们知道您现在遇到了什么错误
-
@chans 谢谢。请参阅下面的回复:)
标签: javascript vue.js vuex