javascript - 使用vue-router的beforeEach钩子,next('/')报错
PHP中文网
PHP中文网 2017-04-11 10:07:17
0
5
786

使用next()和next(false)都没问题,使用next('/index')就报错

PHP中文网
PHP中文网

认证0级讲师

reply all(5)
大家讲道理

把堆栈打开看看。
Maximum call stack size 是不是死循环了,堆栈超出限制。


beforeEach

你这里不加条件判断,当next('/index');执行的时候beforeEach又会执行如此重复。我不太清楚你这么做的理由是什么,不过显然你不应该这样做。

if(con) {
    next('/index')
}
next()
巴扎黑

我猜是next('/index')时也触发了beforeach

黄舟

if (to.matched.some(record => record.meta.requiresAuth)) {

 if(con) {
    next('/index')
  }

}else{

next()

}

官网上面的:

Peter_Zhu

路由1:next('/index')
路由index:next('/index')

死循环了

巴扎黑
next('/index')又会调用beforeEach,我是这样写的
let isLogin = Boolean(store.state.token.token)
if (!isLogin) {
    if (to.path !== '/login') {
      return next({ path: '/login' })
    } else {
      next()
    }
  }else {
    if (to.path === '/login') {
      return next({path: '/posts'})
    }
    next()
  }
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!