问题:navigateBack()emit事件在onload()监听不到
从A页面跳转到B页面,在B点击产生数据后,跳转回到A,并告诉A点击的数据是什么,使用:
navigateBack()
B页面:
toPage() {
uni.navigateBack({
complete: (res) => {
console.log(">>>com ", res)
this.getOpenerEventChannel().emit('selecteCust', this.selectCustomer)
},
success: (res) => {
console.log(">>>res", res)
// res.eventChannel.emit('testCust', {data: this.selectCustomer})
// 打开成功的话, 向打开的页面传递数据,传递的事件名:selecteCust
this.getOpenerEventChannel().emit('selecteCust', this.selectCustomer)
}
})
},
A页面:
eventChannel.on无法监听到B传递过的事件: selecteCust
onLoad() {
// 监听事件
this.ec = this.getOpenerEventChannel();
console.log(">|--,,,,,,,,,,,eventchannel", this.ec)
this.ec.on('testCust', (res) => {
console.log("................selecteCust,监听到了", res)
})
},
解决:改成navigateTo()可以
onLoad() {
// 监听事件
this.ec = this.getOpenerEventChannel();
console.log(">|--,,,,,,,,,,,eventchannel", this.ec)
this.ec.on('testCust', (res) => {
console.log("................selecteCust,监听到了", res)
this.customer = res.data
})
},
效果: