React Native Async Storage set öğesi işlevi
Öğ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
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
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 .