تكرار السؤال: …
الإجابة المختصرة
بتأجيل تنفيذ المهام الثقيلة (مثل معالجة البيانات المعقدة أو التخزين) حتى تنتهي كافة الرسوم الحركية وتفاعلات اللمس الحالية باستخدام InteractionManager.runAfterInteractions.
الشرح
إذا حاول التطبيق معالجة مصفوفة ضخمة بالتزامن مع حركة انتقال الشاشة (Screen Transition Animation)، سيتجمد الإطار وتظهر الحركة متقطعة ومزعجة. يضمن InteractionManager تأجيل العمليات الحسابية غير العاجلة حتى تكتمل حركة الانتقال وتستقر الشاشة بسلاسة بمعدل 60 إطاراً في الثانية.
مثال بالكود
import { InteractionManager } from 'react-native';
import { useEffect } from 'react';
function AnalyticsScreen() {
useEffect(() => {
const task = InteractionManager.runAfterInteractions(() => {
// لن يعمل هذا الكود إلا بعد اكتمال أنيميشن فتح الشاشة بالكامل
runHeavyDataCalculations();
});
return () => task.cancel();
}, []);
return <View>{/* ... */}</View>;
}أخطاء شائعة
- تنفيذ استعلامات مكثفة فور الدخول إلى الشاشة مما يقطع أنيميشن الانتقال الأصلي للنظام.