【修复日常bug】微信小程序 揭秘wx.switchTab跳转方式会附带参数的问题

微信小程序开发中,有一个跳转方式 :wx.switchTab,可把我坑惨了,一个bug改通宵,我们来揭秘一下wx.switchTab跳转方式会附带参数的问题!

 

我们先来说明一下wx.switchTab跳转方式的作用,根据官方的解释是这样的

url 说明路径后不能带参数,即使带了参数传过去也是拿不到值的,可是我为什么说通过wx.switchTab方式跳转能拿到参数呢,这里说的拿到参数并不是跳转过去拿到的参数,而是通过switchTab跳转之前就已经拿到参数了,我现在来说一种情况

现在有三个页面,分别为:

A页面(默认页面)  B页面(底部导航页面)  C页面(底部导航页面) 

当我们启动小程序进入A页面,此时A页面不是底部导航页面,而是一个新开辟的页面,这个时候我们从A页面通过reLaunch跳转到B页面,此时此刻A页面是附带了参数传递到了B页面中,B页面的onLoad执行了,接收options参数,options拿到的是通过A页面传递过来的参数。

 

此时我们把小程序切换到后台,这里要注意,小程序并没有退出进程,只是切换到了后台,然后通过其它方式进入到了C页面,我这里是通过服务通知(模板消息)进入到C页面的,这个时候如果在C页面通过wx.switchTab跳转到B页面就会存在问题,B页面的onLoad被执行了,options会拿到参数。

这里要注意,我们是从C页面过来的,并没有传递任何参数,造成B页面会拿到参数的原因就是我们首次通过A页面进入B页面传递的参数并没有消失,一直附带在onLoad的options参数中,虽然onLoad被重新执行了,但是options还是原来A页面传过来的参数。

要解决从C页面跳转到B页面清理掉B页面onLoad中options的参数,就需要在C页面通过wx.reLaunch方式进行跳转,就会清理掉所有页面重新打开新的页面,底部导航是支持用wx.reLaunch方式进行跳转,这个时候所有参数都会被清理掉,onLoad也不会保留上一个页面跳转过来存在缓存的问题!

 

至今为止,微信要我们开发者填的坑还是蛮多的!

这里我推荐一个个人微信公众号"程序员小鸿",公众号是作者用于全栈技术分享,一位终身学习者!欢迎大家扫码关注!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值