如何使用另一个模块中的模块中的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,rootStaterootGetters将作为getter函数的第3和第4个参数传递,并作为传递给action函数的上下文对象的属性公开。

因此,如果你想访问customerId模块中modA getter中的mycustomer模块的modB getter,它应该是:

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

以上是关于如何使用另一个模块中的模块中的getter进行Vuex状态的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个 vuex 模块访问 getter?

python如何在一个模块中调用另一个模块中的变量

如何在 Vuex 4 和 TypeScript 中使用其他存储模块 getter/actions/mutations

使用具有多个模块的模块模式,一个模块中的事件监听器如何使用来自另一个模块的回调?

如何使用另一个模块

如何从colab中的另一个python模块调用自定义模块