报错内容:

vue-router.esm.js?68cf:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/search".
    at createRouterError (webpack-internal:///./node_modules/_vue-router@3.5.3@vue-router/dist/vue-router.esm.js:1993:15)
    at createNavigationDuplicatedError (webpack-internal:///./node_modules/_vue-router@3.5.3@vue-router/dist/vue-router.esm.js:1978:15)

报错图片:

 出现报错原因:使用编程式路由实现跳转的时候,多次执行会抛出NavigationDuplicated的警告错误是因为"vue-router"3版本之后 底层引入了promise,而通过声明式导航没有出现此类问题是因为vue-router底层已经处理好了。

解决方法1:在router文件夹下的index.js下添加如下内容

// 解决vue-router在3.0版本以上重复点报错问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

解决方法2:在router文件夹下的index.js下:

let originPush=VueRouter.prototype.push;
let originReplace=VueRouter.prototype.replace;
//重写push/replace
//第一个参数:告诉原来的push方法,往哪里跳转(传递哪些参数)
//第二个参数:成功的回调
//第三个参数:失败的回调
//call/apply区别
//相同点:都可以调用函数一次,都可以篡改函数的上下文(this)一次‘
//不同点:call/apply传递参数:call传递参数用逗号隔开,apply方法执行,传递数组
VueRouter.prototype.push=function(location,resolve,reject){if(resolve&&reject){originPush.call(this,location,resolve,reject);}else{originPush.call(this,location,()=>{},()=>{});}
}
VueRouter.prototype.replace=function(location,resolve,reject){if(resolve&&reject){originReplace.call(this,location,resolve,reject);}else{originReplace.call(this,location,()=>{},()=>{});}
}

let originPush=VueRouter.prototype.push;
let originReplace=VueRouter.prototype.replace;
//重写push/replace
//第一个参数:告诉原来的push方法,往哪里跳转(传递哪些参数)
//第二个参数:成功的回调
//第三个参数:失败的回调
//call/apply区别
//相同点:都可以调用函数一次,都可以篡改函数的上下文(this)一次‘
//不同点:call/apply传递参数:call传递参数用逗号隔开,apply方法执行,传递数组
VueRouter.prototype.push=function(location,resolve,reject){
    if(resolve&&reject){
        originPush.call(this,location,resolve,reject);
    }else{
        originPush.call(this,location,()=>{},()=>{});
    }
}
VueRouter.prototype.replace=function(location,resolve,reject){
    if(resolve&&reject){
        originReplace.call(this,location,resolve,reject);
    }else{
        originReplace.call(this,location,()=>{},()=>{});
    }
}

解决报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “相关推荐

  1. 解决Vue报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location

    问题描述:重复点击导航时,控制台出现报错 ,虽然不影响功能使用,但也不能坐视不管. 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplica ...

  2. vue报错Uncaught (in promise) NavigationDuplicated:Avoided redundant navigation

    vue-router.esm.js?3423:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation ...

  3. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “/deta

    Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: " ...

  4. vue2里面的Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location

    编程式导航跳转到当前路由(参数不变),多次执行就会在控制台出现如下结果: 怎么解决: (1)最有效--重写push.replace 在router-index.js中添加: // 重写push.rep ...

  5. 解决Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location问题

    在Vue路由中遇到Error: Avoided redundant navigation to current location:xxxx:错误,意思是路由重复 在router文件夹下的index.j ...

  6. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “/zhu“

    错误原因:避免重复导航到当前路径 <template><div><input type="text" placeholder="搜索&quo ...

  7. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “/sear

    1). 问题: 编程式路由跳转到当前路径且参数没有变化时会抛出 NavigationDuplicated 错误 2). 原因分析: vue-router3.1.0之后, 引入了push()的promi ...

  8. Vue-Router 路由重复点击时报错 Uncaught (in promise) NavigationDuplicated:Avoided redundant navigation to curr

    前言 总结一下,在项目中遇到的一个小问题,使用 Vue 构件的项目里,有时候会存在 重复点击路由 报错的问题,Uncaught (in promise) NavigationDuplicated:Av ...

  9. Uncaught (in promise) Error: Avoided redundant navigation to current location: “/index“. 解决方法

    在router.js中加入以下代码就可以 const originalPush = Router.prototype.push Router.prototype.push = function pus ...

最新文章

  1. 查看imooc服务器文件
  2. 过程工程中的计算机应用基础,CDIO工程教育培养模式在《计算机应用基础》课中的应用...
  3. 在IDEA中设置Java的堆大小
  4. c语言10-100000取整数,100个C语言地编程题.docx
  5. C#泛型编程基础知识总结【转】
  6. php和xml区别,html与xhtml和xml有什么区别
  7. nacos需要mysql吗_nacos无法连接mysql的解决方法
  8. 提高网站速度|负载均衡
  9. R及RStudio下载安装教程(超详细)
  10. 案例研究:手机APP的UI设计流程
  11. idea英文翻译插件Translation
  12. uint 数据类型理解
  13. Gitbub认证及代码提交
  14. 如何在学习中找到乐趣?怎样才能找到学习的乐趣
  15. Graphene 2.0.0.Alpha4,Selenium 的 Ajax 测试扩展
  16. 微云存储空间多大_微云用户容量调整多少了 微云用户容量变小了是吗
  17. word毕设论文制作——封面(一)
  18. 数据分析实战(一百零一):项目分析思路 —— 用户增长实践经验分享
  19. Hadoop HA介绍
  20. 小队pkc++_骑士小队2人金属第一印象

热门文章

  1. Excel基础知识一:Excel功能区、单元格快速定位与选择、Ctrl与Shift的配合使用
  2. PCL之kd-tree详解
  3. CSS面试须知--样式属性
  4. Java环境下运行fastqc_质控软件fastQC的安装及用法
  5. 关于胶囊检测的思考-代码实现
  6. Scratch少儿趣味编程pdf
  7. 如何用photoshop来做流体渐变
  8. WWDC20 苹果发布会
  9. Qt开发高级进阶:如何拷贝生成后的文件到特定文件夹
  10. Android Studio 随手记