【发布时间】:2021-11-07 00:39:29
【问题描述】:
我尝试了门户网站上提到的许多东西,但似乎没有任何东西对我有用,所以在这里发布一些解决方法。
我的Nuxtjs 应用程序文件夹store\modules 中有两个模块:ModuleA 和ModuleB。对于ModuleB 中的一些验证,我想从ModuleA 访问state,但由于某种原因,它失败了。
我尝试了rootScope、import 等,但对我不起作用。
我的state/modules/ModuleA.js:
export const state = () => ({
eventType: 'MyEvent',
})
export const mutations = {
eventTypePopulator (state, event) {
state.eventType = event
},
}
我的state/modules/ModuleB.js:
export const state = () => ({
input: {}
})
export const mutations = {
jsonPreparation ({state, rootState}, payload) {
console.log(rootState.eventType)
// console.log($store.state.ModuleA.eventType)
}
}
我尝试将ModuleA 导入ModuleB 并使用它,但这对我也不起作用。有人可以帮助我如何在Nuxtjs/Vuejs 中从一个Module 中的另一个Module 访问state
【问题讨论】:
-
这些模块是否有命名空间?
-
@kissu 非常感谢您的回复。创建这些模块时,我没有使用任何
namespacing。我刚刚在store下创建了一个文件夹modules,然后创建了不同的文件,例如ModuleA.js和ModuleB.js。做命名空间有什么好处?它会解决我的问题吗? -
顺便说一句,你的意思是
store/modules/ModuleA.js? -
如果您主要想更有条理,命名空间是不错的选择。可以在此处找到更多信息:vuex.vuejs.org/guide/modules.html#namespacing 这本身并不能解决问题,但您需要考虑到这一点。 Nuxt 默认对其模块使用命名空间,如下所示:nuxtjs.org/docs/2.x/directory-structure/store#modules 我通常会创建自己的命名空间,所以我不确定,但我的答案可能与您正在寻找的内容有些接近。
标签: vue.js nuxt.js vuex store vuex-modules