Como percorrer sobre um array aninhado em um componente React.

Labirinto
AdsTerra, Junte-se ao AdsTerra

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.

AdsTerra, Junte-se ao AdsTerra