小程序开发过程中经常有这种需求,需要把当前页面数据传递给上一个页面,但是wx.navigateback()无法传递数据。
一般的办法是把当前页面数据放入本地缓存,上一个页面再从缓存中取出。
除此之外还有一种办法,巧妙利用页面栈。
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。重点就在这里,在当前页面拿到上一个页面的实例对象,然后调用该对象的方法完成数据传递。
页面A
Page({ data: { name: #39; #39; ... , //更新name changeData: function(name){ this.setData({ name: name }})
页面B,假设有一个文本框用于输入姓名,点击返回按钮后更新页面A的name
Page({ //此方法用于文本框输入回调 inputTyping: function (e) { //获取页面栈 var pages = getCurrentPages(); if(pages.length 1){ //上一个页面实例对象 var prePage = pages[pages.length - 2]; //关键在这里 prePage.changeData(e.detail.value) } }})
这样就可以实现数据传递给上一个页面,要注意页面A必须使用wx.navigateTo跳转到页面B,不能使用wx.redirectTo,这样会关闭上一个页面,导致页面B无法获取上一页Page实例。
【相关推荐】
1. 微信公众号平台源码下载
2. 微信投票源码
3. 微信啦啦外卖2.2.4解密开源版 微信魔方源码
以上就是微信开发入门(十一)更新上一页数据的详细内容,更多请关注php中文网其它相关文章!
微信app下载
微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!