vue-router.esm.js?8c4f:2008 Uncaught (in promise) NavigationDuplicated: Avoided

321 阅读1分钟

问题描述:
重复点击路由(home)时,控制台报错:vue-router.esm.js?8c4f:2008 Uncaught (in promise) NavigationDuplicated: Avoided

使用的Vue全家桶各版本如下:

模仿的项目用的是vue-router3.0.2版本没有报错,也不会有vue-router 3.1及以上版本 push 报错问题

解决方案

只需在router/index.js中添加如下代码:

// 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)
}

当然也有其他解决方案,看自己偏好咯~