报错
- 翻译一下就是避免重复定位到当前路由。比如有一个导航(有页面一、页面二),点击了页面二后跳转到页面二,又点击页面二,则重复定位了
解决方案
- 在
/router/index.js
文件里覆写一下router.push
方法(replace方法同理)
......
Vue.use(VueRouter)
// replace 方法同理
const originalPush = router.push;
router.push = function push(location) {
return originalPush.call(this, location).catch(err => err);
};
解释
- 跳转方法会返回一个
Promise
对象,需要加上错误处理catch
。其实这个错误处理什么都没做,相当于加上一个给程序看的处理语句,因为二次跳转是被拒绝了的,只是因为没有后续的错误处理,则导致了报错。(有精力的朋友可以研究下源码实现)
如果觉得对你有帮助的话,点个赞呗~
反正发文又不赚钱,交个朋友呗~
如需转载,请注明出处foolBirdd