我正在VueJS中构建应用程序,但是Vuex模块给了我一些问题。
无论尝试什么,当我从另一个模块调用状态时,都无法检索该模块中的状态。
在我的Vue Devtools Vuex吸气剂中: modA / mycustomer:未定义
我已经阅读了Vuex网站上的所有文档,并尝试了stackoverflow中已经给出的一些解决方案,但我迷路了。可能俯视某事
我的store.js
export default new Vuex.Store({
modules: {
modA: moduleA,
modB: moduleB
}
})
moduleA JS
export default {
namespaced: true,
state:{
customerId:0
},
getters: {
customerId: state => {
return state.customerId
}
}
}
moduleB.js
export default {
namespaced: true,
state:{
orderId:0
},
getters: {
orderId: state => {
return state.orderId
},
mycustomer: rootGetters => {
return rootGetters['modA/customerId']
}
}
}
我通常希望通过此请求获得customerId。但只有未定义 跨模块需要某些状态。
答案 0 :(得分:1)
相关文档为Accessing Global Assets in Namespaced Modules,其中指出:
如果您要使用全局状态和getter,
rootState
和rootGetters
作为第3和第4个参数传递给getter函数,并在上下文对象传递给动作函数。
因此,如果您想访问customerId
模块中modA
吸气剂中mycustomer
模块的modB
吸气剂,则应该是:
mycustomer(state, getters, rootState, rootGetters) {
return rootGetters['modA/customerId']
}