基本上,router.beforeEach()
方法正在做我不了解的事情。
我发现问题的关键在于,当我的路线重定向到/ login时,它将执行大约960次左右,直到发生错误为止。
我的代码如下:
路由器:
let router = new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path:'/login',
name: 'login',
component: Login,
meta: {
requiresAuth: 'false'
}
},
{
path:'/register',
name: 'register',
component: Register,
meta: {
requiresAuth: 'false'
}
},
{
path: '/',
name: 'home',
component: Home,
meta: {
requiresAuth: 'True'
}
}
]
})
beforeEach()方法
router.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
console.log(to.matched.some(record => record.meta.requiresAuth))
if (localStorage.getItem('jwt') == null) {
next({
path: '/login',
params: { nextUrl: to.fullPath }
})
} else {
next()
}
} else {
if (localStorage.getItem('jwt') != null) {
next({
path: '/',
params: { nextUrl: '/' }
})
} else {
next()
}
}
})
我浏览了无数线程和其他地方,但没有一个跟我有同样的问题(或者我正在忽略事情)。任何人都知道如何解决,并且实际上正在发生什么使错误发生在其中?据我所知,我什么都没有命名两次,或者其他任何功能/组件都不应该启动。
答案 0 :(得分:0)
解决了。我的脑袋有点特别。对于有相同问题的任何人,只需将路线更改为
routes: [
{
path: '/login',
name: 'login',
component: Login,
meta: {
requiresAuth: false
}
},
{
path:'/register',
name: 'register',
component: Register,
meta: {
requiresAuth: false
}
},
{
path: '/',
name: 'home',
component: Home,
meta: {
requiresAuth: true
}
}
]
答案 1 :(得分:0)
对于没有任何明显错误而遇到此错误的任何人,请尝试删除node_modules并再次运行npm install
。
我在切换git分支时遇到了这个错误,唯一改变的是软件包,所以我尝试了上面的方法,摆脱了问题:)