如何同时将 mapGetters 与模块和 root 的 getters 一起使用?

How to use mapGetters with modules and root's getters at the same time?

我知道如何在一种情况下使用 mapGetter,但不会同时使用这两种情况。

例如,我在store/index.js里面有firstRootGetter,所以我会在vue组件中调用...mapGetters(['firstRootGetter'])

如果我在store/modules/post.js里面有firstModuleGettersecondModuleGetter,我会调用...mapGetters('post', ['firstModuleGetter', 'secondModuleGetter'])

我的问题是,如何在单个 ...mapGetters 中调用它们。可能吗?

现在我必须写 2 行来分别调用它们。

是的,这是可能的,但您必须在每一行中为 mapGetters 助手提供命名空间:

...mapGetters({
  exampleGetter: 'myModule1/exampleGetter',
  anotherGetter: 'myModule2/anotherGetter',
})

如果您尝试将它们组合成一个 getter,请使用读取模块存储的根 action 和 returns 组合对象。然后 mapActions 就像你 mapGetters.

computed: {
        ...mapGetters('module1', ['getQuestions', 'getAnswers']),
        ...mapGetters('module2', ['getGrades'])
    },

这是使用的语法:

 ...mapGetters('some/nested/module', [
    'someGetter', // -> this.someGetter
    'someOtherGetter', // -> this.someOtherGetter
  ])