在使用ReactNative时,有以下场景:
A页面跳转B页面,在B页面进行相关操作后关闭页面
A页面进行回调,A页面在收到回调时去做一些事情
大致示例代码如下:
pageA.push("pageB",{
props:{
pageBCallBack:{
//doSth
}
}
})
如果A页面在回调中去做一些页面相关的操作(打开新页面,关闭A页面,弹框等),可能会有问题,感觉上是回调未执行。
原因:B页面在关闭时需要一定的动画,这将占用一部分时间(通常300ms),在此期间,页面无法再做出其他页面响应。
解决方案:A页面在收到回调时去做一个setTimeout,延迟在300ms(Android和ios各不一样,可进行部分调试确定)。