经典 Vuex 到模块化:为什么 Getter 现在未定义?
Classic Vuex to Modular: Why is Getter now undefined?
我正在从经典 vuex 转向模块化 vuex,但我需要一些帮助来了解如何在我的应用程序中调用 getter。这是我的商店:
store/user.js
:
export const state = () => ({
currentUser: null,
userProfile: {}
})
export const getters = {
loggedIn(state) {
return !!state.currentUser
}
}
当我从我的应用程序调用 loggedIn
时,我得到 loggedIn
作为 undefined
。这是我调用 loggedIn
:
的方式
src/components/MainNav.vue
:
computed: {
loggedIn() {
return this.$store.getters.user.loggedIn
}
}
有人发现我做错了什么吗?谢谢!
您的商店有 user
命名空间,因此您必须按如下方式调用 loggedIn
getter:
computed: {
loggedIn() {
return this.$store.getters['user/loggedIn']
}
}
另一种方法是使用 mapGetter
助手,如 Vuex docs
中所述
我正在从经典 vuex 转向模块化 vuex,但我需要一些帮助来了解如何在我的应用程序中调用 getter。这是我的商店:
store/user.js
:
export const state = () => ({
currentUser: null,
userProfile: {}
})
export const getters = {
loggedIn(state) {
return !!state.currentUser
}
}
当我从我的应用程序调用 loggedIn
时,我得到 loggedIn
作为 undefined
。这是我调用 loggedIn
:
src/components/MainNav.vue
:
computed: {
loggedIn() {
return this.$store.getters.user.loggedIn
}
}
有人发现我做错了什么吗?谢谢!
您的商店有 user
命名空间,因此您必须按如下方式调用 loggedIn
getter:
computed: {
loggedIn() {
return this.$store.getters['user/loggedIn']
}
}
另一种方法是使用 mapGetter
助手,如 Vuex docs