微信小程序|小程序开发
微信小程序,页面通信,子向父传参
微信小程序-小程序开发
本篇文章带大家了解一下微信小程序中子页面如何向父页面传递参数,希望对大家有所帮助!
易语言数据库查询源码,ubuntu17.04源,wx视频号爬虫,php超链接向php发送,seo在自学lzw
房地产地方中介网站源码,ubuntu中使用adb,tomcat性能调优场景,大学爬虫数据,php意见箱,长沙全网网络推广seo排名优化lzw
微信小程序子页面如何向父页面传递参数
仿58招聘源码,ubuntu16 gcc,tomcat8 线程数,网页爬虫编写,php软件介绍页源码,厚街镇seolzw
有时候我们在做微信小程序项目的时候,会遇到如下的情况:有一个列表页,页面有一个筛选条件,点击之后跳转页面,进行条件的选择,选择完之后返回到列表页,根据筛选的条件进行数据的查询。一般这种情况更多的时候,我们看到的都是通过弹框形式来进行筛选条件进行处理的。那如果我们就想要跳转页面的这种交互方式,我们如何从子页面把参数传递到父页面呢?
【相关学习推荐:小程序开发教学】
问题wx.navigateBack 无法携带参数,子页面无法向父页面传递参数。子页面操作父页面数据
这个地方留意一下,我们是说的子页面操作父页面的数据。
在官方文档上有一个getCurrentPages
的API(官网描述如下):
PageObject[] getCurrentPages()获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。
不要尝试修改页面栈,会导致路由以及页面状态错误。不要在App.onLaunch
的时候调用getCurrentPages()
,此时page
还没有生成。
通过getCurrentPages
这个API,我们可以获取到页面栈的数据,所以就可以获取到指定的页面,在子页面通过修改父页面数据的方式,我们就可以实现子页面向父页面传参的功能。
const pages = getCurrentPages();const gotoPage = pages[pages.length - 1];
所以pages[pages.length - 1]
就为当前页面,父页面就为pages[pages.length - 2]
,依次类推,我们可以获取到其他的祖先页面。
然后再使用setData
方法gotoPage.setData({xxx: \})
来修改设置父页面的数据,从而达到子页面向父页面传递参数的目的。之后再通过wx.navigateBack
进行页面返回即可。
其他解决方式组件弹框
如我们文章开头提到,如果是需要从子页面向父页面传递参数,那我们可以通过弹框的形式显示内容,选择完相应的数据之后,隐藏当前的弹框或者组件。
编程入门!!