js css html

路由添加next({ ...to, replace: true

2022-05-09  本文已影响0人  子绎

在使用 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(()=>{})

上一篇下一篇

猜你喜欢

热点阅读