vue-router报错Uncaught (in promise)及解决方法


1、报错原因

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

这是什么原因呢?

看vue-router的版本更新日志

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

 2、解决方法

方法一:在调用方法的时候用catch捕获异常

this.$router.replace('/home').catch(err => {
   console.log(err)
})

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

在router.js加入以下内容:

import Router from 'vue-router'
  
const originalPush = Router.prototype.push
Router.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)
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 vue 请求报错 Uncaught (in promise) 的解决方法 vue报错 Uncaught (in promise) NavigationDuplicated {_name:""NavigationDuplicated"... 的解决方法 vue-router 3.1.5报错:vue-router.esm.js?8c4f:2089 Uncaught (in promise) 解决Vue-Router升级导致的Uncaught(in promise) navigation guard问题 VUE.js项目中控制台报错: Uncaught (in promise) NavigationDuplicated解决方法 Vue. 之 报错 Uncaught (in promise) vue-router(hash模式)常见问题以及解决方法 Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法 Vue报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object 的解决方法 vue报错vue-router.esm.js?8c4f:2007 Uncaught (in promise) NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated"}
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM