Maison >interface Web >js tutoriel >Comment mettre à jour l'état imbriqué dans React : un guide étape par étape

Comment mettre à jour l'état imbriqué dans React : un guide étape par étape

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 06:24:02886parcourir

How to Update Nested State in React: A Step-by-Step Guide

Mise à jour de l'état imbriqué dans React

Dans le contexte d'une application React, vous pouvez rencontrer des situations où vous devez mettre à jour une propriété spécifique de un objet d’état profondément imbriqué. Un de ces scénarios est celui de la construction d'un formulaire dans lequel les utilisateurs peuvent définir des champs et spécifier divers détails.

Scénario :

Vous disposez d'un objet d'état initial représentant les champs du formulaire, où chacun Le champ est identifié par une clé et possède des propriétés telles que name et populate_at. Vous souhaitez permettre aux utilisateurs de modifier ces propriétés lorsqu'ils interagissent avec les contrôles du formulaire.

Défi :

Cibler l'objet spécifique à mettre à jour dans l'état peut être difficile, en particulier lors de l'utilisation d'objets imbriqués.

Solution :

Pour mettre à jour state.item[1].name, vous pouvez utiliser les étapes suivantes :

1. Faites une copie superficielle de l'objet d'état :

<code class="javascript">let items = [...this.state.items];</code>

2. Créez une copie superficielle de l'élément spécifique que vous souhaitez mettre à jour :

<code class="javascript">let item = {...items[1]};</code>

3. Remplacez la propriété souhaitée dans la copie :

<code class="javascript">item.name = 'newName';</code>

4. Remettez l'élément mis à jour dans la copie de l'objet d'état :

<code class="javascript">items[1] = item;</code>

5. Définissez l'état sur la copie modifiée :

<code class="javascript">this.setState({items});</code>

Vous pouvez également combiner les étapes 2 et 3 en une seule ligne :

<code class="javascript">let item = {...items[1], name: 'newName'};</code>

Solution sur une seule ligne :

Voici comment effectuer la mise à jour complète sur une seule ligne à l'aide des opérateurs de répartition de tableau :

<code class="javascript">this.setState(({items}) => ({
    items: [
        ...items.slice(0, 1),
        {
            ...items[1],
            name: 'newName',
        },
        ...items.slice(2)
    ]
}));</code>

Remarque :

C'est Il est important de noter que l'objet d'état dans votre exemple est structuré à l'aide d'objets simples. Dans les applications React modernes, il est recommandé d'utiliser le hook useState ou Redux pour la gestion de l'état.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn