解决 vue 中报错Uncaught NavigationDuplicated Avoided redundant navigation to current location的问题


问题描述:
在VUE中路由遇到Error: Avoided redundant navigation to current location:报错显示是路由重复

解决方案:

方案一:只需在 router 文件夹下,添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
// src/router/index.js
Vue.use(Router)
const router = new Router({
routes
})

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


注意:1.要将上面的Router更改为自己的路由名称
2.关于方法一定要注意,式子中采用的是push方法,要根据自己的方法进行修改,如我运用了replace方法进行路与配置,次视应将式子中的push修改为replace方法
实例

接下来两个方法本人并没有使用,均为网络上搜集的方法
方案二:在跳转时,判断是否跳转路由和当前路由是否一致,避免重复跳转产生问题。

1
2
3
4
5
toMenu (item) {
if (this.$route.path !== item.url) {
this.$router.push({ path: item.url })
}
}

方案三:使用 catch 方法捕获 router.push 异常。

1
2
3
this.$router.push(route).catch(err => {
console.log('输出报错',err)
})

 


文章作者: 贾志飞
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 贾志飞 !
评论
  目录