智条
智条
  • 发布:2020-10-24 15:07
  • 更新:2022-11-17 14:11
  • 阅读:3353

navigateTo的eventChannel.emit回调无法触发目标页的eventChannel监听

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win7

HBuilderX类型: 正式

HBuilderX版本号: 2.9.3

第三方开发者工具版本号: 1.03.2009301

基础库版本号: 2.13.1

项目创建方式: HBuilderX

示例代码:

uni.navigateTo({
url: url,
success: function(res) {
res.eventChannel.emit('test', {data:'aa'})
}
});

//目标页面
onLoad: function(option) {
let _self = this;
const eventChannel = this.getOpenerEventChannel();
eventChannel.on('test', function(data) {
console.log(111);
})
},

操作步骤:

uni.navigateTo({
url: url,
success: function(res) {
res.eventChannel.emit('test', {data:'aa'})
}
});

预期结果:

预期结在控制台打印111

实际结果:

实际结果没有打印

bug描述:

navigateTo通过eventChannel传参在微信小程序上无法执行eventChannel.on()

2020-10-24 15:07 负责人:无 分享
已邀请:
chenli

chenli

同用这个版本,没有你这个问题。
建议提供可复现的简单示例工程,方便他人排查。

  • 智条 (作者)

    我弄了个简单工程是没问题的,不过我知道原因了。当页面层级过多就会出现这个问题

    2020-10-26 10:08

智条

智条 (作者) - 智条

也不是页面层级过多的原因 主要是我的页面跳转
Vue.prototype.goPage = function(url) {
uni.navigateTo({
url: url,
fail: (err) => {
console.log(err);
},
});
}
多加个了
fail: (err) => {
console.log(err);
},
把这个去掉就没问题了

2***@qq.com

2***@qq.com - meet a better self

同楼主的问题,请问有解决方案了嘛

1***@qq.com

1***@qq.com

同问题 但是我没有写fail也是没办法触发 不知道啥问题

要回复问题请先登录注册