小程序 使用navigateBack返回携带参数

在写业务的时候,我们有时候会遇到这样的场景:从a页面跳转到b页面,然后需要再从b页面返回到a页面;并携带一些数据回来。

这个时候通常我们会使用到

wx.navigateBack

但是由于navigateBack无法直接携带参数;传参就需要另想办法了

当然实现的方法有很多;这里要说的是通过setData的方式实现

b页面代码

 // 选定当前店铺
  changeShopfn: function (e) {
    console.log(e)
    let shopinfo = e.currentTarget.dataset.item;
    console.log(shopinfo)
    let pages = getCurrentPages();//获取页面栈
    let prevPage = pages[pages.length - 2]; //上一个页面
    //直接调用上一个页面的setData()方法,把数据存到上一个页面中去
    prevPage.setData({
      mydata:shopinfo
    })
    wx.navigateBack({
      delta: 1,
    })
  },

a页面代码

 onShow: function () {
    let pages = getCurrentPages();
    let currPage = pages[pages.length - 1]; //当前页面
    console.log(currPage.data.mydata)
    let shopList=currPage.data.mydata;
    if(shopList){
      this.setData({
        shopList
      })
    }
  },

ok,这样就解决了