问题:

当重复点击相同导航时,控制台显示的Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation报错。

解决方法:

1、在router配置文件(/router/index.js)下添加

const VueRouterPush = Router.prototype.push
Router.prototype.push = function push (to) {
  return VueRouterPush.call(this, to).catch(err => err)
}

2、使用 catch 方法捕获异常

this.$router.push(route).catch(err => {
  console.log('跳转异常:',err)
})

3、在进行路由跳转时添加判断,若一致则不跳转

go(item) {
  if (this.$route.path !== item.url) {
    this.$router.push({ path: item.url })
  }
}
Logo

前往低代码交流专区

更多推荐