收藏
回答

安卓 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
                })
            })
        })
    });
},


最后一次编辑于  11-22
回答关注问题邀请回答
收藏

1 个回答

问题标签