在微信小程序里面,页面基本上都是一个栈的数据结构,当我们使用wx.navigateto,打开一个新的页面的时候,这时候就会在栈顶显示这个页面,当我们使用wx.navigateBack() 返回上个页面的时候,就是把当前的页面pop出去。小编之前用过RN,当时采用的是回调函数来实现的,其实在小程序里面不需要这么麻烦,我们可以直接拿到页面栈,然后给上个页面直接赋值就行。
操作方法:
在当前页面执行:
let pages = getCurrentPages(); // 拿到页面栈 let prevPage = pages[pages.length - 2]; // 拿到上个页面,-1是当前页面 prevPage.setData({ // 赋值 addressid: e.currentTarget.dataset.addressid }) wx.navigateBack({ // 返回 delta: 1 })
上一个页面:
// 获取值并进行赋值(一般小编是写在onShow里面) this.setData({ addressid: currPage.__data__.addressid || null })