错误原因:路由地址重复报错,主要是因为重复跳转到一个相同路由地址的界面。
解决方案:再路由配置项中添加以下代码段,我的路由配置下个在router->index.js中,这个根据个人项目配置不同改变,亲测有效。
const originalPush = Router.prototype.push;
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err);
};
简单原理:对Router原型链上的push、replace方法进行重写,用call改变this指向,把异常抛出。这样就避免每次调用时还要加上捕获异常方法。
参考文章:https://juejin.im/post/6844903944028684296