两种方式实现小程序返回页面传递值


方式一,直接调用上一页设置 data

1
2
3
4
5
6
7
8
9
  let pages = getCurrentPages(); // 当前页,
  let prevPage = pages[pages.length - 2]; // 上一页
  prevPage.setData({
    subPageResult: "我是结果",
  })

  wx.navigateBack({ //返回
    delta: 1
  })

方式二,使用 wxStorage

定义 storage-manager.js

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
async function set(key, data) {
  await wx.setStorage({
    key,
    data: JSON.stringify(data),
  });
}

async function get(key) {
  return new Promise((resolve, reject) => {
    wx.getStorage({
      key,
      success: function (res) {
        resolve(JSON.parse(res.data));
      },
      fail: function (e) {
        resolve(null);
      },
    });
  });
}

module.exports = {
  set,
  get,
};

子页面

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const storageManager = require("storage-manager");

async onClickBack(){
  await storageManager.set("subPageResult","我是结果")
  wx.navigateBack({ //返回
    delta: 1
  })
}


父页面

1
2
3
4
5
6
const storageManager = require("storage-manager");

onShow: async function () {
  let r = await storageManager.get("subPageResult")
},