专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

【微信小程序】wx.navigateBack() 携带参数返回

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:27:59       共计:3575 浏览

今天写了一个功能页面, 是一个表单的提交页,其中有要求选择省市区的一栏,省市区分别是三个页面。刚开始我的思路是这样的,当我点击选择省市区那一栏,跳转到选择省份的页面,选择好后,携带参数跳转到选择市的页面,然后继续携带参数跳转到选择区的页面,最后携带三个页面的参数跳转回表单页, 乍一想,这样的思路逻辑很清晰,没什么毛病,但在实际操作中出现,当我选择好省市区携带参数跳转回表单页的时候,之前填写的表单信息会被清空。(因为执行了onload)。出现这种情况,下一秒的想到的对策就是存storage,但是我对storage一向不太喜欢,要存要取要清空,这不是我想要的东西。然后我就继续思考,我想到了引起这种情况的原因是因为页面重新加载,那么如果我不让页面重新加载,那我之前的值不就不会被清空了嘛。说干就干,立刻重写代码达到效果,下面是效果图:

问题完美解决,而且我也得到了我想要的数据。

在我使用这个方法过后,发现这个方法功能异常强大,非常好用推荐给大家。

下面看代码:


  1. let pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。
  2. let prevPage = pages[ pages.length - 2 ];
  3. //prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面,-3是上上个页面以此类推。
  4. prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
  5. id:e.currentTarget.dataset.id,
  6. istype : e.currentTarget.dataset.istype,
  7. isaddress : e.currentTarget.dataset.isaddress
  8. })
  9. //上一个页面内执行setData操作,将我们想要的信息保存住。当我们返回去的时候,页面已经处理完毕。
  10. //最后就是返回上一个页面。
  11. wx.navigateBack({
  12. delta: 1 // 返回上一级页面。
  13. })
  14. //此时页面数据已经改变为我们传递过来的数据。如果想要返回之后处理这些数据,那么要在onShow函数里执行,因为我们执行的是返回,所以不会触发onLoad函数,所以我们要在onShow里执行我们想要使用的函数。

这就是今天的所有内容是不是非常的方便,不必再写一大串的参数传来传去,如果觉得有用,点个赞吧~


版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:微信小程序保存图片到相册 | ·下一条:微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有