收藏
回答

如何将被打开页面的数据传送到上一级页面?

A页面 wx.navigateTo B页面,B页面运算产生的数据传回A页面(注意不用缓存的方式),想问下仿照官方文档中wx.navigateTo的示例这样用没错吧?

每次B页面运算函数执行完毕(此时驻留在B页面还没返回A页面),
A页面会打印“acceptDataFromOpenedPage: 运算结果,返回给上一页面的数据”,
// 在B页面进行运算的函数中,运算结束得到结果后:
const eventChannel = this.getOpenerEventChannel()
eventChannel.emit('acceptDataFromOpenedPage', {
  data: '运算结果,返回给上一页面的数据'
});

// 在A页面接收B页面传回的数据:
wx.navigateTo({
      url: '/pages/pageB',
      events: {
        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
        acceptDataFromOpenedPage: function(data) {
          console.log("acceptDataFromOpenedPage:")
          console.log(data)
                    // 在此时A页面groupList变量记录B页面传回来的数据
          groupList.push(data.data)
        }
      },
    })

谢谢。
最后一次编辑于  2020-04-01
回答关注问题邀请回答
收藏

2 个回答

  • 老张
    老张
    2020-04-01

    一直用wx.navigateTo传数据。还是很好用的。

    看不懂的话,我们估计也不能把你说懂,继续看吧,无非是把例子的数据改来改去看结果,找到规律。

    实在不行,就用globalData,最简单。

    2020-04-01
    有用
    回复 1
    • 啦啦啦
      啦啦啦
      2020-04-01
      谢谢
      2020-04-01
      回复
  • 拾忆
    拾忆
    2020-04-01

    var prevPageData = getCurrentPages();

    prevPageData[prevPageData.length - 2].setData({ data: data })

    2020-04-01
    有用
    回复 3
    • 啦啦啦
      啦啦啦
      2020-04-01
      您看这样可以吗
      2020-04-01
      回复
    • 拾忆
      拾忆
      发表于小程序端
      2020-04-01回复啦啦啦
      你这种不知道,没试过
      2020-04-01
      回复
    • 啦啦啦
      啦啦啦
      2020-04-01回复拾忆
      好的,谢谢
      2020-04-01
      回复
登录 后发表内容
问题标签