Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.8k views
in Technique[技术] by (71.8m points)

vue.js - How to access vuex state from vueRouter in nuxt

Hi I'm trying access to vuex state from VueRouter instance, but i can't get the state properly.

Attempting to access the $store property of router.app says it is null

Here my vueRouter code:

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

In vuex store:

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

Here is my vueRouter object:

VueRouter Object:

And here is the error that i have:

Error:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

other way is to import your store in router file like

import storeA from './pathToStore'

and use in store like

storeA.getters.isLoggedIn

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...