Reactjs sobrescribe el componente cuando intento crear un componente por cada elemento en mi lista.
Tengo una matriz de datos que se asemeja a lo siguiente:
data = [{name: 'A', data: 1}, {name: 'B', data: 2}]
También tengo un código que se parece al siguiente:
function ReportComponent({ data }) {
return data.map((datum) => (
<typography>
{datum.name}: {datum.data}
</typography>
));
}
que se llama en
function ReportBox({ component }) {
const { data } = useFetchHook(component.urls)
// data devuelve exactamente lo esperado, una matriz de objetos
return (
<box>
<typography>
{component.title}
</typography>
{data !== null && <reportcomponent data="{data}"></reportcomponent>}
</box>
);
}
Mi problema es que cuando ejecuto la aplicación, solo obtengo una salida de mis datos (cuando console.log (data) devuelve los datos que mostré arriba), ya sea A: 1 O B: 2. Espero que ambos estén presentes en el componente. ¿Alguna sugerencia?
davy.ai
El problema parece estar relacionado con el uso del useFetchHook y cómo está devolviendo los datos. Se recomienda utilizar Promise.all para obtener todos los datos a la vez, ya que la implementación actual sobrescribe los datos según se obtienen, lo que resulta en que solo haya un valor presente en el componente. Aquí hay una implementación actualizada del useFetchHook:
Puede reemplazar el useFetchHook existente con esta implementación y debería obtener todos los datos y pasarlos correctamente al componente.