自 HBuilderX 2.0.0
起支持 uni.$emit
、 uni.$on
、 uni.$once
、uni.$off
,可以方便的进行页面的通讯 ,触发的事件都是 App
全局级别的,跨任意组件,页面,nvue
,vue
等。
调用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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。