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

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

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

1、版本升级问题,可降级操作 npm i vue-router@3.0 -S

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

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

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

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

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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值