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

Categories

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:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
4.2k views
Welcome To Ask or Share your Answers For Others

1 Answer

other way is to import your store in router file like

import storeA from './pathToStore'

and use in store like

storeA.getters.isLoggedIn

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...