在使用ReactNative時,有以下場景:
A頁面跳轉B頁面,在B頁面進行相關操作后關閉頁面
A頁面進行回調,A頁面在收到回調時去做一些事情
大致示例代碼如下:
pageA.push("pageB",{
props:{
pageBCallBack:{
//doSth
}
}
})
如果A頁面在回調中去做一些頁面相關的操作(打開新頁面,關閉A頁面,彈框等),可能會有問題,感覺上是回調未執行。
原因:B頁面在關閉時需要一定的動畫,這將占用一部分時間(通常300ms),在此期間,頁面無法再做出其他頁面響應。
解決方案:A頁面在收到回調時去做一個setTimeout,延遲在300ms(Android和ios各不一樣,可進行部分調試確定)。