Когда я использую beforeEach с дочерними путями, консоль отладки показывает эту ошибку: vue-router.esm.js? 8c4f: 2079 RangeError: Превышен максимальный размер стека вызовов
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 () работает хорошо (я тестировал без функции, и результат тот же).