问题描述

在升级了Vue-Router版本到到3.1.0及以上之后,页面在跳转路由控制台会报Uncaught (in promise) Error的问题

Vue更新日志

https://github.com/vuejs/vue-router/releases

V3.1.0版本里面新增功能:push和replace方法会返回一个promise, 你可能在控制台看到未捕获的异常

问题分析

解释:没有捕获异常。

解决方案

方法一: 检查代码

1、首先检查router.js中的路由path和name是否有误

2、查看main.js中的路由beforeEach导航守卫的路由跳转是否写错。

方法二:回退版本

在项目目录下运行

npm i vue-router@3.0 -S 

将vue-router改为3.0版本即可;

方法三:捕获异常

1、在调用方法的时候用catch捕获异常

this.$router.replace({ name: 'foo' }).catch(err => {console.log('all good')
})    

2、对Router原型链上的push、replace方法进行重写,这样就不用每次调用方法都要加上catch。

这个方法是vue-router的issues里面的一位大佬解决的

// 解决Vue-Router升级导致的Uncaught(in promise) navigation guard问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location, onResolve, onReject) {if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)return originalPush.call(this, location).catch(err => err)
}

replace方法同上

// 解决Vue-Router升级导致的Uncaught(in promise) navigation guard问题
const originalReplace = VueRouter.prototype.replace
VueRouter.prototype.replace = function replace (location, onResolve, onReject) {if (onResolve || onReject) return originalReplace.call(this, location, onResolve, onReject)return originalPush.call(this, location).catch(err => err)
}

参考文章

https://blog.csdn.net/haidong55/article/details/100939076

https://forum.vuejs.org/t/topic/97260

https://www.cnblogs.com/xinheng/p/13019818.html

https://blog.csdn.net/ShIcily/article/details/102668403

https://blog.csdn.net/sunrj_niu/article/details/106902138

https://blog.csdn.net/Jone_hui/article/details/107411530

https://blog.csdn.net/qq_37875903/article/details/107494973

https://segmentfault.com/q/1010000019723749

Vue——Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案相关推荐

  1. Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案

    解决报错Uncaught (in promise) Error: Redirected when going from - 对Router原型链上的push.replace方法进行重写,这样就不用每次 ...

  2. Vue的router导航重复-报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to curren

    报错: Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: &q ...

  3. vue报错vue-router.esm.js?8c4f:2062 Uncaught (in promise) Error: Avoided redundant navigation to curren

    在写导航切换时点击会有以下报错 这个报错是是路由中点击路径重复 ,也有可能是安装的vue-router还是之前出错的那个版本,在项目目录下运行 npm i vue-router@3.0 -S 即可. ...

  4. VUE.js项目中控制台报错: Uncaught (in promise) NavigationDuplicated解决方法

    问题愿意:依赖包中vue-router出现问题(猜测为版本问题): 解决方法:在项目目录下运行 npm i vue-router@3.0 -S 这条指令就可以解决了.(更换版本) 或者在main.js ...

  5. 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题

    问题描述:重复点击导航时,控制台出现报错 ,虽然不影响功能使用,但也不能视而不见. 解决方案: 方案一:只需在 router 文件夹下,添加如下代码: // src/router/index.js V ...

  6. 解决vue重复点击路由报错问题:Uncaught (in promise) NavigationDuplicated

    直接在路由router文件夹下加上下面代码: import routes from './router'方法一: const originalPush = Router.prototype.push ...

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

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

  8. Vue路由跳转-push,replace的区别

    1.this.$router.push() 跳转到指定的url,此方法会向history栈添加一个记录,点击后退会返回到上一个页面. 2.this.$router.replace() 跳转到指定的ur ...

  9. Vue中报错: Uncaught (in promise) Error:Redirected when going from “x“ to “x“ via a navigation guard

    项目中遇到如图的错误 是因为router的版本问题 和vue/lic有冲突 解决方法: 删除 node_modules ,到 package.json 中将 vue-router 改为最新稳定版 ,当 ...

最新文章

  1. 《预训练周刊》第25期:HyperCLOVA:数十亿级韩语生成式预训练变换器、GPT-3在生物医学领域不是好的小样本学习器...
  2. (十二)Flask 学习 —— 换装
  3. Ubuntu16.04打开和关闭桌面显示
  4. 世界三大顶级音响_世界三大汽车赛事是什么?一起来了解一下
  5. A1078. 逆序对个数
  6. 用好href的target, base href
  7. pandas中read_csv的缺失值处理
  8. 批处理一键创建局域网共享文件夹或文件共享轻松访问Win系统其他电脑的共享文件命令行(纯bat代码)实用便携~
  9. 【原创】《管理的实践》阅读有感
  10. css实现图片虚化_css怎么虚化背景图片?css虚化背景图片的方法介绍
  11. ONLYOFFICE Docs如何与NEXTCLOUD 24连接集成
  12. CSDN 第一篇随笔
  13. QT开发之老板无法拒绝的辞职信
  14. 0.91寸 SSD1306 OLED介绍(四) --- 用上位机验证OLED显示屏
  15. 汪光焘:中国城市交通问题、对策与理论需求
  16. 最长等差数列_最长等差子序列的长度
  17. [开源] OpWeb 框架 --快速高效的实时交互框架(更新至 0.0.4.0)
  18. java开发用i5还是i7_平面设计用i5还是i7?i5
  19. 统计自然语言处理梳理四:篇章分析
  20. centos7根据端口查进程_linux下根据端口号查询对应进程

热门文章

  1. 变长结构体的临时笔记
  2. ASP.NET MVC中使用AJAX(XMLHttpRequest、Microsoft AJAX Library......)
  3. linux rc.d的作用,init.d,rc.d详解 Linux运行时详解
  4. pythin怎么根据月份获取月初和月末_数据统计丨7月份塑料市场明显回暖,8月份是否延续乐观行情?...
  5. python 轮廓矩阵_二进制二维矩阵的python轮廓
  6. 小程序云函数获取用户昵称_小程序云开发云函数进阶
  7. web前端知识点太多_web前端入门必学的16个知识点,都来看一下吧
  8. python代码300行程序_Python:游戏:300行代码实现俄罗斯方块
  9. asp按时间自动递增编号_Java秒杀系统实战系列-分布式唯一ID生成订单编号
  10. android点击弹出滑动条,IndicatorSeekBar Android自定义SeekBar,滑动时弹出气泡指示器显示进度...