Error: Redirected from X to Y via a navigation guard.

vue路由切换报错,升级vue-router包还是报错

阅读 26.7k
8 个回答

参考githubvue-router/issues/3221

大概原因是vue-router包升级后,使用router.push方法会抛出一个异常,需要手动接受处理下,低版本则没有这个问题。
简单解决方法:

1.  `this.$router.push({ path: '/name' }).catch(err => {})`

使用router.push后,用catch接收下就不会抛出这个错误了。

我之前遇到这个问题,纯粹是因为自己路由守卫逻辑写的有毛病,导致该跳转离开的路由又跳转回来。

我不知道你是不是登录的时候路由出现了这样的 如果是可以在登录的路由出更换为 下方的写法.
this.$router.push({ path: this.redirect || "/" }, () => { }, () => { });
或者
this.$router.push({ path: this.redirect || "/" },onComplete => { }, onAbort => { });

查看路由重定向的相关代码

新手上路,请多包涵

出现了和你一样的问题,这是我的解决办法,希望对你有帮助:
1.检查在路由前是否有异步操作
2.如果有则可以通过.then解决:

asyncFunc.then(() => {
    this.$router.push('/path')
}).catch(() => {
    alert('路由跳转失败!')
})

3.Root Cause:
赞成@blink的观点,应该是有多个路由重定向造成的。

遇到同样的问题,楼主,这个问题解决了吗?
Uncaught (in promise) Error: Redirected when going from "/login" to "/dashboard" via a navigation guard

新手上路,请多包涵

我的原因是因为使用的cnpm 安装的依赖包,切换回npm 之后问题就解决了,可能是安装包的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏