Fonction d'élément de jeu React Native Async Storage
J'utilise le stockage asynchrone dans mon application de liste d'articles. Le problème auquel je suis confronté est que mon premier élément n'est pas stocké dans l'asynchrone tant que je n'ai pas entré le deuxième élément. J'enregistre un tableau d'objets à l'aide de crochets de réaction Par exemple, si j'entre des éléments comme 1) Pommes 2) Bananes, seules les pommes seront enregistrées dans l'async tandis que les bananes ne seront pas enregistrées tant que je n'aurai pas entré le troisième élément.
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()
}, [])
la fonction saveData est appelée dans la fonction additems qui est évoquée lorsque la zone de texte est soumise
Réponses
Vous avez oublié d'attendre pour effacer les données. Il est également de nature asynchrone.
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");
}
};
Je vais suggérer, remplacez-le simplement. Pas besoin de clarifier.
Lire la suite: https://react-native-async-storage.github.io/async-storage/docs/api#clear
:-RÉ
Il existe une bibliothèque open source react-native-easy-app , qui englobe l'utilisation d'AsyncStorage, à travers laquelle vous pouvez accéder à toutes les données d'AsncStorage de manière synchrone, peut-être qu'elle peut résoudre votre problème, il y a un exemple de programme ci-dessous, peut-être que vous pouvez vous référer à il. code .