مشكلة فى تكرار touchableOpacity فى React native cli

تحياتى للجميع اعمل على تطبيق react native cli

اقوم بعمل زرار للتنقل الى شاشة ثانية حيث استخدم مكتبة التنقل او الملاحة

المشكلة عندما اضغط على الزرار اكثر من مررة متتالية يتم تكرار الضغطة وبالتالى بصبح اكثر من شاشة

اريد ان يتم تنفيذ اللامر مرة واحده فقط

 <TouchableOpacity activeOpacity={1} onPress={()=>{navigation.navigate('notapd')}} style={Stylemodulsitems.mycard}>
<Text>ملاحظات</Text>
                </TouchableOpacity>
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

من الممكن الإعتماد على الحالة (state) لتتبع ما إذا كانت الشاشة قد تم فتحها بالفعل أم لا، من خلال useState لإضافة حالة تتحكم في إمكانية فتح الشاشة، كالتالي:

import React, { useState } from 'react';
import { TouchableOpacity, Text } from 'react-native';


const YourComponent = ({ navigation }) => {
  const [screenOpened, setScreenOpened] = useState(false);


  const handleButtonPress = () => {
    if (!screenOpened) {
      // تحديث الحالة لتشير إلى أن الشاشة قد تم فتحها
      setScreenOpened(true);
      
      // قم بالانتقال إلى الشاشة 'notapd'
      navigation.navigate('notapd');
    }
  };


  return (
    <TouchableOpacity
      activeOpacity={1}
      onPress={handleButtonPress}
      style={Stylemodulsitems.mycard}
    >
      <Text>ملاحظات</Text>
    </TouchableOpacity>
  );
};


export default YourComponent;

والمقصود هو استخدام حالة screenOpened لتتبع ما إذا كانت الشاشة قد تم فتحها أم لا، وعند الضغط على الزرار، يتم فحص قيمة screenOpened، وإذا كانت false، يتم تحديث الحالة إلى true ويتم فتح الشاشة وتنفيذ التنقل.