Получатель из Магазина в Vue return ƒ isLoggedIn (state) - PullRequest
1 голос
/ 05 августа 2020

Я сохранил в своем Vue хранилище состояние пользователя Laravel, но пытаюсь получить его вот так:

let isLoggedIn = store.getters.isLoggedIn

В консоли при вызове этой переменной я получаю:

ƒ isLoggedIn (state) {return state.user? истина: ложь; }

вместо true или false.

Код моего магазина:

let store = {
    state: {
        user: '',
    },
    mutations: {
        setAuthUser(state, user) {
            state.user = user;
        }
    },
    getters: {
        isLoggedIn(state) {
            return state.user ? true : false
        }
    }
};

export default store;

My app.js, где я вызываю геттер :

router.beforeEach((to, from, next) => {
  let isLoggedIn = store.getters.isLoggedIn
  console.log(isLoggedIn)
  if (to.matched.some(record => record.meta.requiresAuth)) {
    
    // this route requires auth, check if logged in
    // if not, redirect to login page.

    if (!isLoggedIn) {
      next({
        path: '/ingresar',
        query: { redirect: to.fullPath }
      })
    } else {
      next()
    }
  } else {
    next() // make sure to always call next()!
  }
})

1 Ответ

1 голос
/ 05 августа 2020

Вы не инициализировали магазин должным образом, поэтому проблема, которую вы заметили. Код вашего магазина просто экспортирует простой объект вместо Vuex.Store.

Для инициализации магазина:

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

let store = /* ... */

export default new Vuex.Store(store)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...