前言:写代码有点洁癖,看见这种影响美观的报错无法忍受
跳转 vue-router 中同样的路由会报错,不同路由不会提示
经了解,此问题解决方式如下
- 删除你项目下的依赖 node_modules 文件夹,重新初始化 cnpm / npm install(个人理解是更新部分依赖的版本,但有网友遇到依赖更新后版本没有发生变化,和之前报错版本无差)
- 单独升级vue-router的版本,cnpm / npm i vue-router@3.0 -S,(我的默认升级到3.0.7)
- 在main.js / router.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,若没有捕获到错误,控制台会出现此类报错警告
这个问题在 GitHub中 vue-router 版本迭代 中已被修复!
特此记录 !
若理解有误,请各位指点