如何同时将 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
里面有firstModuleGetter
和secondModuleGetter
,我会调用...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
])
我知道如何在一种情况下使用 mapGetter,但不会同时使用这两种情况。
例如,我在store/index.js
里面有firstRootGetter
,所以我会在vue组件中调用...mapGetters(['firstRootGetter'])
。
如果我在store/modules/post.js
里面有firstModuleGetter
和secondModuleGetter
,我会调用...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
])