"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você atualiza o estado aninhado no React usando a abordagem imperativa?

Como você atualiza o estado aninhado no React usando a abordagem imperativa?

Publicado em 2024-11-14
Navegar:149

How Do You Update Nested State in React Using the Imperative Approach?

Abordagem imperativa para atualizar o estado aninhado

No React, as atualizações de estado são imutáveis. Isso significa que para atualizar um objeto ou array aninhado, você não pode simplesmente modificar suas propriedades e esperar que as alterações sejam refletidas na UI. Em vez disso, você precisa criar um novo objeto ou array que inclua os valores atualizados e depois passá-lo para setState.

Considere o exemplo a seguir, onde queremos atualizar a propriedade name do objeto no índice 1 no matriz de itens armazenada em state:

handleChange: function (e) {
  // Make a copy of the items array
  let items = [...this.state.items];

  // Make a copy of the item object at index 1
  let item = {...items[1]};

  // Change the name property of the copied item
  item.name = 'New Name';

  // Replace the item at index 1 with the updated item
  items[1] = item;

  // Update the state with the new items array
  this.setState({items});
},

Nesta abordagem, usamos a sintaxe spread (...) para criar cópias superficiais do array items e do objeto item no índice 1. Em seguida, modificamos a propriedade name do item copiado e substituímos o item no índice 1 com a versão atualizada. Por fim, atualizamos o estado com a nova matriz de itens.

Essa abordagem é direta e funciona bem para atualizações de estado simples. No entanto, pode se tornar complicado e sujeito a erros para atualizações de estado complexas envolvendo vários objetos ou matrizes aninhados.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3