公司项目被测试出一个问题,就是在导航栏中快速切换页面时控制台会发生报错,大概是这样的(图是盗的,文末贴了大佬文章)
啥意思呢?我查了一下:
报错原因没有定位到,但是项目还得继续啊,所以找到一个办法,在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 api的形式了,返回的是一个promise。如果路由地址跳转相同且没有捕获到错误,就会发生控制台报错。3.0以下版本不会发生这种问题。
还有其他的解决办法我没有尝试,欢迎各位补充指正,带我长知识呀~
原文地址:https://blog.youkuaiyun.com/weixin_47084275/article/details/108205775