Не удается получить данные от геттеров в маршрутизаторе. [Vuex, квазар] - PullRequest
0 голосов
/ 05 мая 2020

Я хочу получить геттеры формы даты в маршрутизаторе. У меня в магазине 2 модуля:

export default function (/* { ssrContext } */) {
const Store = new Vuex.Store({
 modules: {
   customers,
   auth
 },
 namespaced: true,
 strict: process.env.DEV
})

  return Store
}

И это мой auth / index. js

import state from "./state";
import * as getters from "./getters"
import * as mutations from "./mutations"
import * as actions from "./actions"

export default {
 namespaced: true,
 state,
 mutations,
 actions,
 getters
}

Я хочу проверить, аутентифицирован ли мой пользователь до go компоненту Я хочу это проверить.

  {
    path: '',
    component: () => import('pages/Index.vue'),
    beforeEnter: ifAuthenticated()
  },

Теперь в router / index. js Я объявляю свою функцию

export function ifAuthenticated(to, from, next){
console.log(store.auth); //undefined
if (store.auth.getters.isAuthenticated) {
  next();
  return;
}
next("/login");
};

Как я могу вызвать мои геттеры для возврата значения или как я могу вызвать свой магазин для модуля аутентификации ?

1 Ответ

0 голосов
/ 07 мая 2020

Я бы посоветовал попробовать несколько вариантов. Прежде всего, взгляните на этот ответ ( Как получить доступ к получателю из другого модуля vuex? ).

Я бы попробовал:

this.$store.getters.isAuthenticated()
store.getters.isAuthenticated()
// don’t forget the ()

А затем попробуйте добавить RootGetters и снова протестируйте те же части. Если это не сработает, вы можете попробовать пространство имен ( Что именно такое пространство имен модулей в vuex )

store.getters[‘auth/isAuthenticated’]

Или вы можете попробовать настроить перечисление с помощью authGetters в своем магазине

export enum authGetters {
  IS_AUTHENTICATED = 'isAuthenticated'
}

store.getters[authGetters.IS_AUTHENTICATED]
...