路由死循环报错‘vue-router.esm.js?8c4f:2181 RangeError: Maximum call stack size exceeded’

跳转路由时加了一个导航守卫验证是否存在token,没有则跳转登录页面

错误提示
RangeError: Maximum call stack size exceeded
路由死循环报错‘vue-router.esm.js?8c4f:2181 RangeError: Maximum call stack size exceeded’_第1张图片
错误代码:

// 是否带有token值,有的话正常跳转,没有的话就跳转login页面
router.beforeEach((to, from, next) => {
  if (!window.sessionStorage.getItem('mytoken')) return next('/login')
  next()
})

解决方案:

// 是否带有token值,有的话正常跳转,没有的话就跳转login页面
router.beforeEach((to, from, next) => {
  if (to.path === '/login') return next()
  if (!window.sessionStorage.getItem('mytoken')) return next('/login')
  next()
})

错误原因:
我觉得应该是路由跳转那里的导航守卫那里不写if (to.path === '/login') return next()的话,不带token值,就会进入导航守卫判断,然后跳转/login,然后又进入导航守卫进行判断,然后又又又又,,,,然后陷入死循环

你可能感兴趣的:(router,vue)