微信小程序返回上一页传参并刷新

微信小程序的onLoad方法仅加载一次,导致返回时无法通过URL传参刷新数据。为解决商品支付页面在选择优惠券后返回显示选中数据的问题,可以利用页面栈获取上一页并直接在支付页面的onShow方法中处理刷新数据。在优惠券页面点击优惠券时,将数据存入支付页面的data,返回时即可直接获取并更新界面。
摘要由CSDN通过智能技术生成

问题

  微信小程序onLoad(options)方法在整个生命周期中只加载一次,也就是你进入下个页面,再返回时,是不会再次触发的,所以你返回是url传参是行不通了。

需求

  现在有这么一个需求:一个商品支付页面,点击优惠卷进入优惠券列表页,选中优惠券后带着数据再返回到支付页面。

方法

  一、使用到的方法是小程序的页面栈,感兴趣可以打印一下pages的内容,就是你页面跳转的轨迹数组,最后一项就是当前页面,倒数第二个就是上一页。很好理解,因为在当前页停止了,肯定是最后一个

//获取页面栈

  let pages = getCurrentPages();

  //获取所需页面

  let currPage = pages[pages.length - 1];//当前页面

  let prevPage = pages[pages.length -2];//上一页

二、在支付页把需要再次刷新的数据都放到onShow()方法中,不需要刷新的放到onLoad()方法中

思路

  1、我们的目标是把优惠券的数据渲染到支付页上,所以先在优惠券页面点击优惠券的时候通过页面栈获取到上一页(也就是支付页),将本条数据动态添加到支付页的data中

//获取页面栈

  let pages = getCurrentPages();

  //获取所需页面

  let prevPage = pages[pages.length -2];//上一页

  prevPage.setData({

  yourData:yourData,//你需要传过去的数据

  });

2、将需要刷新的数据放到onShow()方法中

//这里展示在onShow方法中获取当前页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值