如何使用另一个模块中的模块中的吸气剂来进行Vuex状态

时间:2019-04-14 11:53:32

标签: vue.js module vuex getter

我正在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。但只有未定义 跨模块需要某些状态。

1 个答案:

答案 0 :(得分:1)

相关文档为Accessing Global Assets in Namespaced Modules,其中指出:

  

如果您要使用全局状态和getter,rootStaterootGetters作为第3和第4个参数传递给getter函数,并在上下文对象传递给动作函数。

因此,如果您想访问customerId模块中modA吸气剂中mycustomer模块的modB吸气剂,则应该是:

mycustomer(state, getters, rootState, rootGetters) {
  return rootGetters['modA/customerId']
}