場景:
Navigator過渡動畫、Modal彈窗show/hide動畫,使用InteractionManager.runAfterInteractions這個解決方案
Interactionmanager可以將一些耗時較長的工作安排到所有互動或動畫完成之后再進行。這樣可以保證JavaScript動畫的流暢運行,應(yīng)用這樣可以安排一個任務(wù)在交互和動畫完成之后執(zhí)行。
InteractionManager.runAfterInteractions(() => {
// 耗時較長的同步的任務(wù)
this.onReqMakeDeal();
});
以Modal彈窗為例,具體應(yīng)用代碼如下:
import Modal from "rn-global-modal";
// <EntrustAlert/> 為自定義的業(yè)務(wù)組件代碼
Modal.show(
<EntrustAlert
dataSource={modalData}
callbackIndex={index => {
Modal.hide();
if (index === 1) {
// 解決過渡動畫卡頓的問題
InteractionManager.runAfterInteractions(() => {
HandlerOnceTap(() => this.onReqMakeDeal());
});
}
}}
/>,
{
animationType: "fade",
maskClosable: true,
onMaskClose: () => {}
}
);
參考地址:https://blog.csdn.net/u012982629/article/details/82024476