wx.navigateBack() 携带参数返回

作者: web 发布时间: 2022-10-25 浏览: 582 次 编辑

wx.navigateBack() 携带参数返回


思路是,获取上一个页面对象,然后setData()

let pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。
let prevPage = pages[ pages.length - 2 ];  
//prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面,-3是上上个页面以此类推。
prevPage.setData({  
    id:e.currentTarget.dataset.id,
    istype : e.currentTarget.dataset.istype,
    isaddress : e.currentTarget.dataset.isaddress
})
 
// 将我们想要传递的参数在这里直接setData。上个页面中这些需要初始化了。
//上一个页面内执行setData操作,将我们想要的信息保存住。当我们返回去的时候,页面已经处理完毕。
 
 
//最后就是返回上一个页面。
wx.navigateBack({
    delta: 1  // 返回上一级页面。
})
 
//此时页面数据已经改变为我们传递过来的数据。如果想要返回之后处理这些数据,
那么要在onShow函数里执行,因为我们执行的是返回,所以不会触发onLoad函数,
所以我们要在onShow里执行我们想要使用的函数。

通过prevPage指向页面栈的page对象,使用prevPage.this.setData({ id: id }) 等同于 路由URL参数拼接的方式 可以使指定页面的onLoad接收到参数,从而实现了wx.navigateBack() 携带参数返回