Я пытаюсь защитить компонент vue в глобальном файле router.js, используя beforeEnter()
, однако я получаю сообщение об ошибке типа в консоли, которая говорит
не может прочитать свойства получателя неопределенных
Вот пример файла router.js
import login from './views/login'
//the component I want to guard
import admin from './views/adminPage'
//my Vuex store
import { store } from './store'
Vue.use(Router)
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path: '/login',
name: 'login',
component: login
},
{
path: '/admin'
name: 'admin',
component: admin,
beforeEnter(to, from, next){
if(!store.getters.currentUser){
next('/login')
} else {
next()
}
}
}
]
})
//this is an example of my store.js file
export default new Vuex.Store({
state: {
currentUser: null
},
//....
getters: {
currentUser: state => state.currentUser
}
})
<
Примечание: я считаю, что проблема здесь, в файле router.js, потому что я без проблем вызываю мои методы получения vuex по всем файлам приложения.