头图

HBuilderX 2.0.0 起支持 uni.$emituni.$onuni.$onceuni.$off ,可以方便的进行页面的通讯 ,触发的事件都是 App 全局级别的,跨任意组件,页面,nvuevue 等。
调用uni.$on事件后要记得移除事件,或者直接使用 uni.$once 只调用一次,用完会自动移除事件,否则第二次返回时,会监听两次,第三次会监听三次,依次类推。

实现方法:
父级页面

onShow() {
    uni.$once('selectGoods', (data) => {
        // 返回的数据会保留数据类型,但是控制台无法查看,需要JSON.stringify才能查看
        console.log('监听到事件来自返回的参数:' + data);
    })
},

子页面

// 确认
onGoodsSure() {
    console.log('确认', this.goodsList);
    uni.$emit('selectGoods', this.goodsList)
    uni.navigateBack({
        delta: 1
    })
},

参考文档:https://uniapp.dcloud.net.cn/api/window/communication.html


兔子先森
466 声望556 粉丝

致力于新技术的推广与优秀技术的普及。