【发布时间】:2020-11-25 20:34:46
【问题描述】:
我已经在我的 Vue 存储中存储了 Laravel 用户的状态,但试图这样获取它:
let isLoggedIn = store.getters.isLoggedIn
在控制台中调用该变量时,我得到:
ƒ isLoggedIn (状态) { 返回 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;
我的 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()!
}
})
【问题讨论】:
-
只调用函数?
let isLoggedIn = store.getters.isLoggedIn() -
getter 并不打算作为函数调用。它应该可以像您使用它一样工作,但是您的商店使用情况不正确。
标签: javascript vue.js vuex