在小程序开发过程中,我们会遇到这样的需求,点击A页面上的某个元素跳到B页面(使用navigateTo),在B页面上处理完数据之后再回到A页面,可是如果用navigateTo从B页面跳到A页面由于调用了onLoad方法,原来A页面填好的数据也没了,那么如何拿到B页面的值呢?用globalData?不够安全。用storage?有大小限制,而且超过一定时间会被清理。这时候就是navigateBack()派上用场的时候了,话不多说,直接上代码
B页面
在B页面保存需要回传的值
select(e){
let pages = getCurrentPages() //获取当前页面栈的信息
let prevPage = pages[pages.length - 2] //获取上一个页面
prevPage.setData({ //把需要回传的值保存到上一个页面
info: e.currentTarget.dataset.item
});
wx.navigateBack({ //然后返回上一个页面
delta: 1
})
}
A页面
现在回到A页面取值
onShow: function() {
let pages = getCurrentPages();
let currPage = pages[pages.length - 1]; //当前页面
let info = currPage.data.info
if (info) {
this.setData({
name: info.name,
tel: info.tel,
company: info.company,
address: info.address
})
}
},
现在我们在A页面拿到了从B页面回传回来的值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。