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

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

20180724171119950.gif

问题完美解决,而且我也得到了我想要的数据。
在我使用这个方法过后,发现这个方法功能异常强大,非常好用推荐给大家。

下面看代码:

let pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。

let prevPage = pages[ pages.length - 2 ];  

//prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面,-3是上上个页面以此类推。

prevPage.setData({  // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。

    id:e.currentTarget.dataset.id,

    istype : e.currentTarget.dataset.istype,

    isaddress : e.currentTarget.dataset.isaddress

})

//上一个页面内执行setData操作,将我们想要的信息保存住。当我们返回去的时候,页面已经处理完毕。


//最后就是返回上一个页面。

wx.navigateBack({

    delta: 1  // 返回上一级页面。

})

//此时页面数据已经改变为我们传递过来的数据。如果想要返回之后处理这些数据,那么要在onShow函数里执行,因为我们执行的是返回,所以不会触发onLoad函数,所以我们要在onShow里执行我们想要使用的函数。

转自https://blog.csdn.net/namecz/article/details/81188190

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 序言 原本题目写的时候实战经验,但是觉着算不上什么经验,就改成学习笔记了😂 注册小程序账号 开发和发布流程 小范围...
    RRRookieG阅读 6,787评论 0 3
  • 因新工作主要负责微信小程序这一块,最近的重心就移到这一块,该博客是对微信小程序整体的整理归纳以及标明一些细节点,初...
    majun00阅读 12,165评论 0 9
  • 创建小程序 新建项目选择小程序项目,选择代码存放的硬盘路径,填入刚刚申请到的小程序的 AppID,给你的项目起一个...
    Hachiman阅读 4,897评论 0 2
  • 微信小程序的导航跳转分为navigateTo(保留当前页,跳转到应用内的其他页面,跳转非tabBar页面,可带参...
    回忆丶阑珊阅读 16,797评论 0 4
  • 回 总目录 梦幻由心莲 上一章 浩威叛乱 第二十八章 强人所难 这时,淑媛走过来,说:“我们也知道,这...
    爱的水瓶阅读 3,038评论 8 30

友情链接更多精彩内容