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

useState يجبرنى على الضغط مرتين حتى أقوم بعمل Update لل Value الخاصة ب Async Storage فما الحل ؟؟

أحمد عبد الله2

السؤال

السلام عليكم .. مشاكلى مع ال useState ليس لها حدود وكلها تتمحور حول خطأ واحد وهو "وضع القيمة القديمة بدلا من الجديدة أو الحاجة الى الضغط على الزر مرتين حتى يعمل set للقيمة الجديدة" 

أريد ان عندما اضغط على الزر يقوم التطبيق بتخزين القيمة الجديدة وليست القديمة عند الضغط مرة واحدة دون الحاجة الى الضغط مرتين.. هذا هو الكود 
 


  const [wantNotification, setWantNotification] = useState('NO');


  const storeNotificationAsync = async wantNotification => {
    try {
      await AsyncStorage.setItem('wantNotification', wantNotification).then(
        setWantNotification('Yes'),
      );
    } catch (e) {
      console.log(e);
    }
  };

  const createAlert = () =>
    Alert.alert(
      'Notifications',
      'Do You Want Notifications',
      [
        {
          text: 'Cancel',
          onPress: () => console.log('Cancel Pressed'),
          style: 'cancel',
        },
        {
          text: 'OK',
          onPress: async () => await storeNotificationAsync(wantNotification),
        },
      ],
      {cancelable: false},
    );

 

من المفترض انه عندما اضغط على OK اى أقبل ال Alert انه يقوم بتخزين القيمة Yes داخل ال Async storage ولكن يجب ان ضغط مرتين ..



 

تم التعديل في بواسطة أحمد ابراهيم عبد الله
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...