【问题标题】:How to access vuex state from vueRouter in nuxt如何从 nuxt 中的 vueRouter 访问 vuex 状态
【发布时间】:2021-04-21 06:00:43
【问题描述】:

您好,我正在尝试从 VueRouter 实例访问 vuex 状态,但我无法正确获取状态。

尝试访问router.app$store 属性时说它为空

这是我的 vueRouter 代码:

router.beforeEach((to, from, next) => {
    const isLoggedIn = router.app.$store.getters["user/isLogedIn"];
    if (to.name !== "Login" && !isLoggedIn) {
        next({ name: "Login" });
    } else {
        next();
    }
});

在 vuex 商店中:

export const getters = {
  isLoggedIn(state) {
    if (state && state.user) {
      console.log("state.user", state.user);
    }
    return state.user !== null && state.user !== {};
  },
};

这是我的 vueRouter 对象:

VueRouter 对象:

这是我遇到的错误:

错误:

【问题讨论】:

    标签: vue.js nuxt.js vuex vue-router


    【解决方案1】:

    另一种方法是将您的商店导入路由器文件中,例如

    import storeA from './pathToStore'
    

    并在商店中使用

    storeA.getters.isLoggedIn
    

    【讨论】:

    • 我也厌倦了这个window.$nuxt.$store.getters["user/isLogedIn"],但说windows没有定义。
    • 通过查看您发布的错误消息它说can't read $store of null 一定有某个地方您正在使用<someObject>.$store 正确调试并查看它来自哪一行错误。
    猜你喜欢
    • 2020-07-28
    • 2020-10-26
    • 1970-01-01
    • 2021-05-15
    • 2020-11-18
    • 2021-09-23
    • 2018-12-19
    • 2023-03-28
    • 2023-02-09
    相关资源
    最近更新 更多