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

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

回答:

参考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的观点,应该是有多个路由重定向造成的。

回答:

参照这个试试
http://blog.sqber.com/articles/vue-router-redirect-fail.html

回答:

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

回答:

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

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注