【发布时间】:2019-11-03 09:52:39
【问题描述】:
当我将 beforeEach 与子路径一起使用时,调试控制台显示此错误:vue-router.esm.js?8c4f:2079 RangeError: Maximum call stack size exceeded
import Vue from 'vue'
import VueRouter from 'vue-router'
import LoginMixin from '@/mixins/LoginMixin.js'
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'home',
component: require('@/views/Home.vue').default,
},
{
path: '/login',
name: 'login',
meta: { layout: 'centered' },
component: () => import('@/views/Login.vue'),
},
{
path: '/register',
name: 'register',
meta: { layout: 'centered' },
component: () => import('@/views/Register.vue'),
children: [
{
path: 'user',
component: () => import('@/components/RegisterForm.vue'),
},
{
path: 'company',
component: () => import('@/components/CompanyForm.vue'),
}
]
},
]
//creamos la instancia router modo history(urls amigables)
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
router.beforeEach((to, from, next) => {
if (to.path != '/login' || to.path != '/register/user' && LoginMixin.methods.loginMixinCheckAuth() == false) {
//if not logead and join to other page distinc of login or register redirect to login
next('/login')
}
else {
next()
}
})
我不知道什么是坏的,语法很好,函数 LoginMixin.methods.loginMixinCheckAuth() 运行良好(我在没有函数的情况下测试,结果是一样的)。
【问题讨论】:
标签: vue.js vue-router