小程序页面跳转bug优化记录,getCurrentPages 奇迹妙用解决问题

小程序页面跳转bug优化记录,getCurrentPages 奇迹妙用解决问题

需求描述:我同事A做的是团餐页面,我做的是团餐地址管理页面,在团餐页面点击收货地址 进入我的地址管理列表页面选择地址后把地址信息address带到团餐页面,点击返回 回到首页。

过程1:
我和A说我想把带过去的数据存到localstorage里面去,在使用 wx.navigateTo 跳转到团餐页面,在团餐页面onShow 里定义一个方法去检查 localstorage里面有没有我存的数据 address,有的话读取localstorageaddress 重新给收货地址赋值,没有的话设置收货地址为空,但是我同事觉得这样麻烦,于是让我把获取到的地址信息address转一下 let address = encodeURIComponent(JSON.stringify(address)) || ''后直接放在链接里 http://跳转的连接?address=${url},跳过去,他那边在onload里面接收数据,有的话证明是从地址管理跳转过去的,把获取到的信息解析出来给地址赋值。
问题1:
这个可以把数据带过去,但是出现了一个问题,就是通过 wx.navigateTo 从地址管理列表页面跳转到团餐页面后,在返回的话又跳到了地址管理页面,(团餐-----点击----->地址列表-----选中地址---->团餐-----返回----->地址列表------返回------>团餐),这样非常不友好。

过程2:
我发现了问题1的bug后,我和同事A沟通了一下,他说这样可行,但是我知道在测试那关肯定过不了,我在查了下微信小程序开发文档,有没有办法跳转到另一个页面不刷新且能把当前页面的数据带过去,文档里关于跳转相关的api,只有 wx.navigateBack(Object object)跳转 可以不让页面刷新也不会出现返回的问题,在这里插入图片描述
api里面的 getCurrentPages 换这个api好像没用过,查了 下这个api : 获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。 好像手的不是很明白,百度查了下这个 api的大概用法
在这里插入图片描述
这个方法貌似可以使用跨页面赋值,在这里插入图片描述
我尝试了一下,,先在团餐页面data里定义一个变量 address:{} ,当点击地址列表的item的时候,把item信息赋值给address ,赋值后在跳转弄过去,在团餐页面onshow里 判断 address是否有值,有值就把值给收货地址赋值,在点击返回回到首页。成功解决了这个跳转带参数的问题,改好后和同事A沟通了一下,我说把这个跳转你的问题优化了一下,跳转比较友好,他也同意我最新的修改方案。
在这里插入图片描述
总结: 在当前页面通过 getCurrentPages 把上一级页面的data数据修改,再返回到上级页面,返回后在上级页面onshow里检查data数据是否有值?有值就渲染带过去的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端酱紫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值