【VUE】vue路由跳转Uncaught (in promise) undefined 需要点两次才能跳转成功

vue项目使用路由跳转,点击第一次时报下图的错误,点击第二次时才能正常跳转

【VUE】vue路由跳转Uncaught (in promise) undefined 需要点两次才能跳转成功_第1张图片

网上查阅很多资料有解决办法如下图

1、版本升级问题,可降级操作 npm i [email protected] -S

      不过这个方法我没有尝试,不知道有没有效果,而且大家也要慎重操作因为。。。

【VUE】vue路由跳转Uncaught (in promise) undefined 需要点两次才能跳转成功_第2张图片

2、在调用push的时候,设置回调函数

this.$router.push({ path: 'Home' }, onComplete => { }, onAbort => { })

3、数据存储顺序问题,如下图

【VUE】vue路由跳转Uncaught (in promise) undefined 需要点两次才能跳转成功_第3张图片

不过这些方法,都没有解决我的问题

以下是我的解决方案:

//我的跳转写法使用的是path跳转
//出现第一次报错 Uncaught (in promise) undefined
//第二次正常跳转情况
this.$router.push({ path:'Home',query:{ type:1 } })


//修改为name跳转,跳转正常
this.$router.push({ name:'Home',params:{ type:1 } })

众所周知,router有两种跳转方式,一种是通过name跳转,另一种是通过path跳转

query是针对path的,params是针对name的

至于为什么会产生这样的情况,目前我还在梳理,有兴趣的可以参考这篇文章

https://www.cnblogs.com/ccplus/p/8535987.html

如果有幸能解决你的问题,那我真是三生有幸,四通八达,五福临门,六六大顺了。

你可能感兴趣的:(vue)