【问题标题】:Classic Vuex to Modular: Why is Getter now undefined?从经典的 Vuex 到模块化:为什么 Getter 现在未定义?
【发布时间】:2021-01-13 18:06:51
【问题描述】:

我正在从经典 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
    }
}

有人发现我做错了什么吗?谢谢!

【问题讨论】:

  • 所以我必须将mapGetters 添加到我的代码中,它现在可以工作了。我会相应地更新我的答案......但也许其他人有更好的方法来解决这个问题。
  • 为什么在 getter 和 loggedIn 之间使用 user ?你有多家商店吗?

标签: nuxt.js vuex vuexfire


【解决方案1】:

您的商店有 user 命名空间,因此您必须调用您的 loggedIn getter,如下所示:

computed: {    
  loggedIn() {
    return this.$store.getters['user/loggedIn']
  }
}

另一种方法是使用mapGetter 助手,如Vuex docs 中所述

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 2018-11-16
    • 2018-10-16
    • 2019-07-31
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多