Esse artigo ensinará como percorrer sobre um array aninhado em um componente React, pois muitas aplicações modernas consomem dados externos de outros aplicativos e ferramentas através de APIs. Estes dados vêm em vários tipos de esquemas e caberá a você desconstruí-los até obter o que deseja usar. Entre esses esquemas estão objetos de dados que contêm arrays aninhados, e pode ser desafiador renderizar esse tipo de dados.
Usando a função MAP
A função map itera sobre os itens de um determinado array e retorna a afirmação ou o código especificado para cada um.
Para um array simples, a função map funciona da seguinte maneira:
const arr = ['a', 'b', 'c']; const result1 = arr.map(element => { return element; });
No React, você deve envolver a função map com chaves e usar uma arrow function para retornar um elemento de nó para cada iteração. Os itens no array simples acima podem ser renderizados como elementos JSX assim:
const arr = ['a', 'b', 'c']; function App () { return ( <> {arr.map((item, index) => { <span key={index}>{a}</span> })} </> ) }
Observe que você atribui uma chave (key) a cada elemento que a função map retorna. Isso ajuda o React a identificar itens que foram alterados ou removidos.
Percorrendo um Array Aninhado em um Componente React
Um array aninhado é semelhante a um array que contém outro array. Por exemplo, o seguinte array de receitas contém um objeto com um array.
const recipes = [ { id: 716429, title: "Chocolate cake", image: "<https://example.com/recipeImages/example-312x231.jpg>", dishTypes: [ "lunch", "main course" ], recipe: { // recipe data } } ]
Para dados como esse com arrays aninhados, você deve usar uma função map para cada array.
Neste exemplo, você mapearia sobre o array de dados como mostrado abaixo:
export default function Recipes() { return ( <div> {recipes.map((recipe) => { return <div key={recipe.id}> <h1>{recipe.title}</h1> <img src={recipe.image} alt={recipe.title} /> {recipe.dishTypes.map((type, index) => { return <span key={index}>{type}</span> })} </div> })} </div> ) }
O componente Recipes irá renderizar o elemento div contendo os dados da receita para cada receita no array de receitas.
Trabalhando com Arrays no JavaScript
O JavaScript oferece uma ampla variedade de métodos de array que tornam o trabalho com arrays mais simples. Este artigo demonstrou como renderizar dados de um array aninhado usando o método map do array. Além do map, também há métodos para ajudá-lo a adicionar dados a um array, concatenar dois arrays ou até mesmo classificar um array.