Tengo el siguiente código:
const doSomething = useCallback(someFunction); useEffect(() => { // doSomething takes in the data and invokes the callback at the end as newData doSomething(data, (newData: string) => { setData(newData); }); }, [data, doSomething]); Cuando quiero probar esto, solo funciona cuando uso setTimeout con 1 o más ms. Supongo que esto se debe a que la función en useEffect aún no se ha ejecutado y, por lo tanto, no ha actualizado el componente, corríjame si me equivoco. ¿Cómo puedo solucionar esto sin setTimeout ? ¿O necesito un enfoque completamente diferente? Se agradece la ayuda.
tal vez intente una función de contenedor, por ejemplo:
async function handleSomething(){ const res = await doSomthing() setData(res) }luego llame a esta función dentro de useEffect.