Vue路由器第二个导航卫兵导致未捕获的异常

时间:2020-05-09 11:49:14

标签: vue.js vue-router

我试图通过使用requiresAdmin变量并对照用户存储中的值来检查对某些路由的未经授权的访问。所有路由都工作正常,但是每次调用next({name:permission})时,它都会在控制台中返回“未捕获的异常:未定义” 。我该如何解决?

路由器配置

const router = new VueRouter({
    mode: 'history',
    routes: [
        {
            path: '/',
            redirect: {name: 'dashboard'}
        },
        {
            path: '/dashboard',
            name: 'dashboard',
            component: DashboardPage,
            meta: {
                requiresAuth: true,
                is_admin: true
            }
        },
        {
            path: '/login',
            name: 'login',
            component: LoginPage,
            meta: {
                requiresAuth: false,
                is_admin: false,

            }
        },
        {
            path: '/permission',
            name: 'permission',
            component: PermissionPage,
            meta: {
                requiresAuth: true,
                is_admin: false
            }
        }
    ]
})

    router.beforeEach((to, from, next) => {

    if (!store.getters['user/isLoggedIn'] && to.matched.some(record => record.meta.requiresAuth)) {
        next({
            name: 'login',
        })

    } else if (!store.getters['user/isAdmin'] && to.matched.some(record => record.meta.is_admin)) {
        next({
            name: 'permission',
        })

    } else {
        next()
    }
});

0 个答案:

没有答案