اذهب إلى المحتوى
  • 0

تحديث الشاشة السابقة عند goBack

عبد النور محمد

السؤال

أنا جديد في React Native. كيف يمكننا تحديث / إعادة تحميل الشاشة السابقة عند العودة إليها باستدعاء goBack ()؟

لنفترض أن لدينا 3 شاشات a b c
عندما نقوم بتشغيل goBack () من الشاشة C ، فإنه يعود إلى الشاشة B ولكن مع state بالبيانات القديمة. كيف يمكننا تحديثه؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

توجد عدة طرق لتنفيذ ذلك يمكننا استخدام ال hook التالي useIsFocused  ثم استخدام هذه القيمة ك dependency ل sideEffect لتنفيذ دالة ما كالتالي

const componentB = (props) => { 
  // يتأكد ما إذا كانت هذه الصفحة مفتوحة أم لا
  const isFocused = useIsFocused();


  useEffect(() => {
    updateSomeFunction()//isFocused يتم تنفيذ هذه الدالة بناءاً على القيمة
  },[isFocused]);
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

إن كنت تستخدم react-navigation 5.x يمكن استخادم الدالة:

componentDidMount() {
  this.loadData();

  this.focusListener = this.props.navigation.addListener('focus', () => {
    this.loadData();
  });
}

حيث نضيف مستمع لحدث التركيز و خلاله نعيد تحميل البيانات.

إن كنت تستخدم functional component نستعمل useEffect ونعمل على تحديثها بتغيير Navigation:

function Home({ navigation }) {
  React.useEffect(() => {
    const unsubscribe = navigation.addListener('focus', () => {
      loadData();
    });
    return unsubscribe;
  }, [navigation]);

  return <HomeContent />;
}

سيتم تحديث الصفحة بتغيير الرابط وعند التركيز على هذه الصفحة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...