- 今天维护老项目,遇到这么一个路由跳转的
bug
,记录一下,头都找大了,终于解决了
虽然不影响正常的跳转,但是每次点击跳转都会报错,所以很烦,然后网上也找了很多方法,也试了很多方法,但是好多都是复制粘贴的文章,看的我好心累,索性我自己总结一个
- 简单粗暴模式,直接更改
router
版本 ,目前网上比较多的,是2个(没尝试
)- 将版本降低到
3.0
以下,比如2.8.0
- 将版本升级到
3.0
版本,比如3.0.7
- 将版本降低到
- 修改
router.push()
模式(试过了没用
)- 说的是因为是
promise
模式,没有捕获到错误,所以报错,只需要加个catch就是了this.router.push({}).catch(()=>{})
- 说的是因为是
- 添加代码
- 在
main.js
下重新注册一下路由(解决
)
- 在
import Router from 'vue-router'
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}
// 注:官方vue-router@3.0及以上新版本路由默认回调返回的都是promise,原先就版本的路由回调将废弃!!!!