Tengo un problema que aparece en muchos de mis proyectos de reacción cuando llamo a una API. Esta solicitud devuelve una respuesta, pero los datos de respuesta no aparecen en la vista de reacción (en el navegador), incluso llamar a la función de configuración de un estado para actualizar los datos no funciona.
Me veo obligado a interactuar con el dom para activar la llegada de la respuesta (como hacer clic en un botón, escribir algo, etc.) o para pasar los datos a un componente secundario. ¿Alguien tiene una idea sobre ese problema?
Esta es mi función de búsqueda que está funcionando bien
const afficherBase = (baseId, table, view, fields = []) => { let base = Airtable.base(baseId); return new Promise((resolve, reject) => { let recs = [] base(table).select({ //maxRecords : 15, view : view, fields : fields }).eachPage(function page(records,fetchNextPage) { recs.push(records) fetchNextPage(); }, function done(err) { if(err) { console.log(err); reject(err)} }) console.log(recs) resolve(recs) })}
Y esa es mi función de inicio useEffect para mi componente:
useEffect(() => { const asyncPrepare = async() => { let res = await Promise.resolve(renderView("a","ContactFull","Coordonnées")) console.log(res) setTimeout(() =>{console.log("rerender ?")}, 4000) setBdd({...bdd, records : await res}) // setUpdating(true) // setTestUpdate(true) console.log(bdd.records) } const prepare = () => { renderView("a","Animation Communauté","Grid view") .then((res) => { console.log(res) let data = res return data }) .then((data) => { console.log("data") console.log(data) setBdd({...bdd, records : data}) console.log(bdd.records) }) .catch((err) => { console.error(err) }) } prepare() },[])¿Tienes alguna idea para resolver este problema?