刷新页面后vuex从sessionStorage获取,为什么router.beforeEach中state的为空?

vuex:

const state = {
  state: {
    token: sessionStorage.getItem('token') || '',
  },
}

router:

router.beforeEach(function(to, from, next) {
  console.log(to.meta.auth,store.state.token,to.path);
  if (to.meta.auth && !store.state.token && to.path !== '/login') {
    return next({
      path: '/login',
      query: {redirect: to.fullPath}
    })
  }
  next();
});

在用户登陆后刷新页面,为什么beforeEach里store.state.token为空?


因为我把store写成了state...
QAQ每天都在问傻逼问题

阅读 7k
1 个回答
const store = { // 这里是 store ?
  state: {
    token: sessionStorage.getItem('token') || '',
  },
}
初始化 store 实例时,如果没登录 token 应该是空的,之后如果登录,sessionStorage 保存到 token 后,state.token 也不会再改变了,因为没有 mutation 去触发重新获取
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题