Vue路由器从Vuex访问单个吸气剂

时间:2018-11-08 07:05:59

标签: javascript vue.js vuex vue-router

我正在尝试访问router.js文件中Vuex存储中的当前已验证用户

{
  path: '/admin/login',
  name: 'admin-login',
  component: AdminLogin,
  beforeEnter(to, from, next) {
    console.log(store.state.user);
    if(store.getters.user) {
      // check if an agency is trying to log in as admin
      if (!store.getters.user.attributes['custom:role_id'] === 1) {
        next({ name: 'agency-dashboard', params: { agency: store.getters.user.attributes['custom:agency_id'] } });
      } else {
        next({ name: 'admin-dashboard' });
      }
    } else {
      next();
    }
  }
}

当我console.log(store.getters)时,我得到一个处于所有状态的对象,包括用户对象。

但是,当我尝试访问store.js中确实存在的console.log(store.getters.user)时,它只返回false,这是页面加载时用户对象的初始状态。

如何从state.getters看到用户对象,而从state.getters.user看不到用户对象?

1 个答案:

答案 0 :(得分:0)

在我看来,这是语法错误,因为将getter作为属性进行访问,这些属性作为Vue的反应系统的一部分进行缓存。用于访问它:

this.$store.getters