React Native Async Storage set item function

Nov 03 2020

Estoy usando almacenamiento asíncrono en mi aplicación de listado de artículos. El problema al que me enfrento es que mi primer elemento no se almacena en el async hasta que ingrese el segundo elemento. Estoy guardando una serie de objetos con la ayuda de react hooks. Por ejemplo, si ingreso elementos como 1) Manzanas 2) Plátanos, solo las manzanas se guardarán en el async, mientras que los plátanos no se guardarán hasta que ingrese el tercer elemento.

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 función saveData se llama dentro de la función additems que se envía cuando se envía el cuadro de texto

Respuestas

1 xdeepakv Nov 10 2020 at 19:51

Olvidó esperar para borrar los datos. También es de naturaleza asincrónica.

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");
  }
};

Sugeriré, simplemente anótelo. No es necesario aclarar.

Lee mas: https://react-native-async-storage.github.io/async-storage/docs/api#clear

:-RE

rufeng Nov 04 2020 at 10:03

Hay una biblioteca de código abierto react-native-easy-app , que envuelve el uso de AsyncStorage, a través de la cual puede acceder a cualquier dato en AsncStorage sincrónicamente, tal vez pueda resolver su problema, hay un programa de muestra a continuación, tal vez pueda consultar eso. codigo .