路由添加next({ ...to, replace: true })导致的Redirected when goin from xx to xx 错误问题

在使用 router.addRoutes动态添加路由后,需要手动添加next({ ...to, replace: true })进行重定向重新加载才可以识别到新添加的路由。
但是由于next({ ...to, replace: true })中的to解构,会导致当前路由和前一个路由不一致,vue会抛出重定向的错误。

解决方案:
在router/index.js中添加如下代码 (推荐)

const routerPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return routerPush.call(this, location).catch(error => error)
}
Vue.use(Router)

第二种解决方案(不推荐,但也有用)
在要跳转之前 添加.catch监听,只需要监听vue即将抛出的路由异常,vue就不会主动在控制再抛红色错误

this.$router.push('/').catch(()=>{})

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容