Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.7k 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 Reply

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...