React Native Async Storage set öğesi işlevi

Nov 03 2020

Öğe listeleme uygulamamda eşzamansız depolama kullanıyorum. Karşılaştığım sorun şu ki, ikinci öğeye girene kadar ilk öğem eşzamansız olarak depolanmıyor. Tepki kancalarının yardımıyla nesnelerin dizisini kaydediyorum. Örneğin, öğeleri 1) Elmalar olarak girersem 2) Muzlar, üçüncü öğeye girene kadar muzlar kaydedilmezken eşzamansız olarak yalnızca elmalar kaydedilir.

const [getWant, setwant] = useState([]);

const saveData = async () => {
      AsyncStorage.clear()
       try {
        await AsyncStorage.setItem("@pantry102", JSON.stringify(getWant))
         console.log(getWant)
         alert('Data successfully saved')
       } catch (e) {
         alert('Failed to save the data to the storage')
       }
     }
const readData = async () => {
        try {
          const userData= await AsyncStorage.getItem("@pantry102")
          const userData2 = JSON.parse(userData)
          if (userData2 !== null) {
            console.log(userData2)
            setwant(userData2)
            
          }
        } catch (e) {
        alert('Failed to fetch the data from storage')
        }
      }
useEffect(() => {
      readData()
      }, [])

saveData işlevi, metin kutusu gönderildiğinde kısaltılan eklenti işlevi içinde çağrılır

Yanıtlar

1 xdeepakv Nov 10 2020 at 19:51

Verileri temizlemeyi beklemeyi unuttunuz. Doğada da eşzamansızdır.

await AsyncStorage.clear()

const saveData = async () => {
  try {
    await AsyncStorage.clear();
    await AsyncStorage.setItem("@pantry102", JSON.stringify(getWant));
    console.log(getWant);
    alert("Data successfully saved");
  } catch (e) {
    alert("Failed to save the data to the storage");
  }
};

Önereceğim, sadece geçersiz kıl. Temizlemeye gerek yok.

Daha fazla oku: https://react-native-async-storage.github.io/async-storage/docs/api#clear

:-D

rufeng Nov 04 2020 at 10:03

AsyncStorage'ın kullanımını sarmalayan, AsncStorage'daki herhangi bir veriye eşzamanlı olarak erişebileceğiniz açık kaynak kodlu react-native-easy-app kütüphanesi var , belki sorununuzu çözebilir, aşağıda örnek program var , belki de başvurabilirsiniz o. kodu .