报告一个框架bug
- Dominant language
- JavaScript
- Stars
- 41.6k
- Forks
- 3.7k
- Avg merge
- 7h 6m
- Merged PRs (30d)
- 6
Description
**问题描述**
不知道能不能表述的清楚,但是我试了很多次是必现的。
**复现步骤**
现在小程序有A1页面,A2页面,A3页面。
1. A1页面中有一个按钮,逻辑很简单 ,uni.navigateTo({url: A2,fail(){}}) 跳向A2路由 (注意下我这里回调只用了一个fail,这将是bug的必现条件)
2. A2页面也有一个按钮,逻辑也很简单,是跳向A3的 ,但是注册了一个从A3返回到A2的一个回调函数
uni.navigateTo({
url: A3,
success:({eventChannel}) => {
eventChannel.on('backFromA3', data => {
console.log('receive backFromA3')
});
}
})
3. A3页面页面也有一个按钮,是back回A2的,顺便发了一个指令函数给A2的监听回调
uni.navigateBack({success:() => {
this.getOpenerEventChannel().emit('backFromA3');
}});
**预期结果**
预期结果,应该是A3点击back按钮回到A2的时候,应该触发回调,打印出 'receive backFromA3' 信息。
**实际结果**
A3点击back按钮回到A2的时候没有打印出任何信息,但是如果在点击一下A2中的按钮的时候才会触发打印信息,打印时机错落。
我这边排查下来的结果是,A1在navigatorTo A2的时候,不能只传入一个fail() 回调 ,得和success联用才行,即使success里面啥逻辑都没有,或者和complete联用,反正就是不能单独使用fail(),不然会导致后面A2 A3页面的未知问题。
**系统信息:**
- 发行平台: [如 微信小程序、H5平台、5+ App等]
- 操作系统 [如 iOS 12.1.2、Android 7.0]
- HBuilderX版本 [如使用HBuilderX,则需提供 HBuilderX 版本号]
- uni-app版本 [如使用Vue-cli创建/运行项目,则提供`npm run info`的运行结果]
- 设备信息 [如 iPhone8 Plus]
**补充信息**
[可选]
[根据你的分析,出现这个问题的原因可能在哪里?]
Contributor guide
Assessment
This issue has not been assessed yet.