场景:
Navigator
过渡动画、Modal
弹窗show/hide
动画,使用InteractionManager.runAfterInteractions
这个解决方案
Interactionmanager
可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证JavaScript
动画的流畅运行,应用这样可以安排一个任务在交互和动画完成之后执行。
InteractionManager.runAfterInteractions(() => {
// 耗时较长的同步的任务
this.onReqMakeDeal();
});
以Modal
弹窗为例,具体应用代码如下:
import Modal from "rn-global-modal";
// <EntrustAlert/> 为自定义的业务组件代码
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