programing

Vue의 스토어에서 Getter from Store from Vue return is isLoggedIn(상태

prostudy 2022. 5. 24. 21:55
반응형

Vue의 스토어에서 Getter from Store from Vue return is isLoggedIn(상태

나는 나의 Vue 저장소에 Laravel 사용자의 상태를 저장했지만, 이렇게 하려고 노력했다.

let isLoggedIn = store.getters.isLoggedIn

이 변수를 호출할 때 콘솔에서 다음 정보를 얻으십시오.

ƒ isLoggedIn (state) { return state.user? true: false; }

a 대신에true또는false.

내 스토어 코드:

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

export default store;

나의app.js, getter를 호출하는 위치:

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()!
  }
})

스토어를 제대로 초기화하지 못하여 문제가 발생함.스토어 코드는 다음이 아닌 일반 객체를 내보내는 중Vuex.Store.

저장소를 초기화하려면:

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

let store = /* ... */

export default new Vuex.Store(store)

참조URL: https://stackoverflow.com/questions/63269035/getter-from-store-in-vue-return-%c6%92-isloggedinstate

반응형