如何使用另一个模块中的模块中的getter进行Vuex状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用另一个模块中的模块中的getter进行Vuex状态相关的知识,希望对你有一定的参考价值。
我正在VueJS中构建一个应用程序,但是Vuex模块给了我一些问题。
我尝试过什么从另一个模块调用它时,我无法检索模块中的状态。
在我的Vue Devtools Vuex getter中: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。但只有未定义模块之间需要一些状态。
答案
相关文档是Accessing Global Assets in Namespaced Modules,其中说:
如果要使用全局状态和getter,
rootState
和rootGetters
将作为getter函数的第3和第4个参数传递,并作为传递给action函数的上下文对象的属性公开。
因此,如果你想访问customerId
模块中modA
getter中的mycustomer
模块的modB
getter,它应该是:
mycustomer(state, getters, rootState, rootGetters) {
return rootGetters['modA/customerId']
}
以上是关于如何使用另一个模块中的模块中的getter进行Vuex状态的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Vuex 4 和 TypeScript 中使用其他存储模块 getter/actions/mutations