Cómo renderizar imágenes dinámicas dentro de objetos de datos anidados.
Puedo usar console.log()
para ver los datos que quiero después de mapear a través de los datos de mi consulta GraphQL. Sin embargo, las funciones anidadas .map
no están mostrando mi JSX. ¿Es posible mostrar JSX en funciones anidadas de .map
?
const NikonGallery = ({ data }) => {
return (
<Layout>
{data.allFiles.nodes.map((item) => {
Object.entries(item).map(([key, value]) => {
value.map((image) => {
console.log("Individual image", image) // Logs show the data I want
return (
<>
<GatsbyImage
image={image.gatsbyImageData}
alt={image.description}
/>
</>
)
})
})
})}
</Layout>
)
}
<p>export default NikonGallery
La información de GraphQL/Contentful es una matriz anidada de objetos. Tengo problemas para mostrar el JSX cuando llamo a los objetos anidados a través de .map
.
davy.ai
Sí, es posible renderizar JSX en funciones
.map
anidadas. Sin embargo, parece que el problema radica en la estructura de su código. En su ejemplo, la segunda función.map
que está utilizando no está devolviendo nada a la función.map
externa.Esto es lo que puede hacer para solucionar este problema:
En el código actualizado, ambas funciones
.map
ahora están devolviendo sus elementos mapeados. Además, se ha agregado una propiedadkey
alReact.Fragment
para ayudar a React a optimizar el proceso de renderizado.Con estos cambios, debería poder renderizar JSX desde las funciones
.map
anidadas.