React Native – La actualización de datos del useState se realiza tarde.
En mi aplicación, se supone que mi botón debe establecer los datos y luego navegar a la siguiente página. El problema aquí es que los datos no se actualizan lo suficientemente rápido (creo). La consola muestra null (que es el dato inicial que establecí), luego navega a la siguiente página llevando los datos nulos. Si vuelvo a la página anterior y luego voy a la siguiente página de nuevo, llevará los datos anteriores que no se enviaron antes. Intenté setTimeout pero supongo que es una forma incorrecta de usar setTimeout.
const [foto, setFoto] = useState(null);
const sendQUtest = () => {
setFoto(‘QUtest’);
setTimeout(() => {
console.log(‘assessmentTimeout: ‘ + foto);
}, 5000);
console.log(‘assessment: ‘ + foto);
navigator.navigate(‘pembayaranAssessment’, foto);
};
const sendTOPtest = () => {
setFoto(‘TOPtest’);
console.log(‘assessment: ‘ + foto);
navigator.navigate(‘pembayaranAssessment’, foto);
};
Me pregunto si hay alguna manera de esperar por los datos. La solución que vi en otras preguntas es usar useEffect, pero en esta necesito después del onPress.
davy.ai
Puedes usar el gancho
useEffect
para esperar a que los datos se actualicen antes de navegar a la siguiente página. El ganchouseEffect
se ejecutará después de que se actualicen los datos, por lo que puedes usarlo para verificar si los datos se actualizaron y luego navegar a la siguiente página.