Vue.js 有了Vuex,为什么不是';是否有接受与mapState相同语法的MapGetter?
我有一个Vue组件,它映射Vuex存储中的状态、突变、操作和获取程序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
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中执行的逻辑,这就是目的所在