vue踩坑:vue路由守卫,控制台一直报错:Uncaught (in promise) Error: Redirected when going from “/login” to “/home” via a navigation guard.

由于项目需要登录,所以需要每次判断token是否为登录状态,所以使用了路由守卫。在没有登录的情况下,跳转首页的时候,虽然被拦截了,但是控制台出现了一条报错(标题为报错内容),看看了文档发现了问题。

一、原因:

主要因为路由一直被重定向,错误没有被抛出。

二、解决方案:

//login.vue
//路由跳转的位置(修改前)
 this.$router.push({
    path: "/home",
  })
//修改后
 this.$router.push({
    path: "/home",
  }).catch(()=>{
   //此处可以添加一个弹窗,例如:
   alert('请先登录')		
})

三、总结

问题没有想象的那么复杂,只是在this.$router.push()后面添加.catch 错误回调就可以解决问题。

Logo

前往低代码交流专区

更多推荐