Vue Router доступ к отдельным геттерам от Vuex - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь получить доступ к аутентифицированному пользователю в моем магазине Vuex внутри моего файла router.js

{
  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), я получаю объект со всеми свойствами в состоянии, включая объект пользователя.

Однако, когда я пытаюсь получить доступ к console.log(store.getters.user), который существует в моем store.js, он просто возвращает false, который является начальным состоянием моего пользовательского объекта при загрузке страницы.

Почему пользовательский объект виден из state.getters, но не state.getters.user?

1 Ответ

0 голосов
/ 08 ноября 2018

Это кажется мне синтаксической ошибкой, потому что геттеры доступны как свойства, которые кэшируются как часть системы реактивности Vue. Используйте для доступа к нему:

this.$store.getters
...