Estoy trabajando en una aplicación, que es similar a una aplicación Todo. Tengo dos pantallas que son SecondScreen.js y FirtScreen.js . En SecondScreen.js hay una pantalla que guarda los datos. Luego, el usuario hace clic en un botón, va a FirstScreen.js que es este código a continuación. Cuando va a FirstScreen.js , no se actualiza (agrega los nuevos datos), pero permanece igual. Cuando agrego una vez más, agrega el anterior que se acaba de agregar. Cuál es un dato detrás.
Además, a keys = await AsyncStorage.getAllKeys() le falta un dato, los datos que se agregan.
Además, keys.pop() es para eliminar una clave que no uso pero es para actualizar la identificación.
const [realData, setData] = useState([]); useEffect(() => { const unsubscribe = navigation.addListener('focus',() => { getData(); }); return unsubscribe; },[navigation]); const getData= async () => { let keys = [] try { keys = await AsyncStorage.getAllKeys() } catch(e) { console.log("Fail") } let values let data = [] keys.pop() try { values = await AsyncStorage.multiGet(keys) } catch(e) { // read error } values.map(values => { let jsonData = JSON.parse(value) data.push({"title": jsonData.title,"date": jsonData.date, "task": jsonData.task, "id": jsonData.id}) }) setData(data) } ``