Vue.js 有了Vuex,为什么不是';是否有接受与mapState相同语法的MapGetter?

Vue.js 有了Vuex,为什么不是';是否有接受与mapState相同语法的MapGetter?,vue.js,vue-component,vuex,Vue.js,Vue Component,Vuex,我有一个Vue组件,它映射Vuex存储中的状态、突变、操作和获取程序 import {mapState, mapMutations, mapActions, mapGetters} from 'vuex' export default { name: 'DefaultLayout', computed: { ...mapState({ settings: (state) => state.settings, language: (state) =&g

我有一个Vue组件,它映射Vuex存储中的状态、突变、操作和获取程序

import {mapState, mapMutations, mapActions, mapGetters} from 'vuex'
export default {
  name: 'DefaultLayout',
  computed: {
    ...mapState({
      settings: (state) => state.settings,
      language: (state) => state.language
    }),
    ...mapState([
      'changeRouteTo'
    ]),
    ...mapGetters([
      'isLoggedIn'
    ])
  }
...
问题是,我无法让
..mapGetters
使用显式语法,就像我使用上面的
..mapState
的第一个实例一样

我试过了

...mapGetters({
  isLoggedIn: (state) => state.getters.isLoggedIn
})

但只是

...mapGetters([
  'isLoggedIn'
])

似乎有效。

要在
…mapGetters
中使用对象,语法如下:

...mapGetters({
  isLoggedIn: 'isLoggedIn'
})

其中,key是希望getter映射到的名称,value是getter的名称,作为字符串

,对于mapGetters,您应该使用getter访问状态的某些部分,例如在您的存储中,您将有类似的内容

const state = {
  isLoggedIn:''
}

const getters = {
  isLoggedIn(state) {
    return state.isLoggedIn
   }
}
export default {
  state,
  getters
}
 computed: {
      ...mapGetters(['isLoggedIn'])
    },
在您的组件中,您可以像这样访问isloggedIn属性

const state = {
  isLoggedIn:''
}

const getters = {
  isLoggedIn(state) {
    return state.isLoggedIn
   }
}
export default {
  state,
  getters
}
 computed: {
      ...mapGetters(['isLoggedIn'])
    },
现在您可以访问isLoggedIn属性 因为mapGetters提供了对gitters的访问,get函数返回了存储的一部分,所以您不必重写get函数并将状态传递给它,即您应该在getters中执行的逻辑,这就是目的所在