首页 > 解决方案 > 如何从 nuxt 中的 vueRouter 访问 vuex 状态

问题描述

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

试图访问的$store属性router.app说它是空的

这是我的 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.jsnuxt.jsvuexvue-router

解决方案


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

import storeA from './pathToStore'

并在商店中使用

storeA.getters.isLoggedIn

推荐阅读