收藏
回答

安卓 Page.onLoad() eventChannel.once 不生效

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android 8.0 MIUI11 小米5 7.0.8.1540

 Wechatlib:2.9.3

父页面:

navigateTo(e) {
    // console.log(e.currentTarget.dataset.url)
    let url = e.currentTarget.dataset.url;
    let files = this.data.files;
 
    if (utils.notEmpty(url) && files.length > 0) {
 
        wx.navigateTo({
            url: url,
            success: function(res) {
                //触发子页面的一个名为acceptDataFromParentPage事件,并传递数据 files
                //通过eventChannel向被打开页面传送数据
                res.eventChannel.emit('acceptDataFromParentPage', files)
            }
        })
 
    } else {
        utils.showModalNoCancel('请选择图片', '我知道了');
    }
},


子页面:

/**
 * 生命周期函数--监听页面加载
 */
onLoad: function(options) {
 
    const eventChannel = this.getOpenerEventChannel()
    // 监听acceptDataFromParentPage事件,获取上一页面通过eventChannel传送到当前页面的数据
    eventChannel.once('acceptDataFromParentPage', data => {
        // console.log(data)
        data.forEach(element => {
            this.setData({
                files: this.data.files.concat({
                    imsrc: element
                })
            })
        })
    });
},


回答关注问题邀请回答
收藏

2 个回答

  • Lan
    Lan
    2019-12-23

    同不生效

    官方能否给 once的使用姿势?

    代码和楼主的差不多,但是都执行不到控制台那一步

    2019-12-23
    有用 1
    回复
  • 是小白啊
    是小白啊
    2019-11-22

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-11-22
    有用
    回复
登录 后发表内容
问题标签