Maison > interface Web > js tutoriel > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-03 06:24:02
original
797 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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

<code class="javascript">item.name = 'newName';</code>
Copier après la connexion

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

<code class="javascript">items[1] = item;</code>
Copier après la connexion

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

<code class="javascript">this.setState({items});</code>
Copier après la connexion

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

<code class="javascript">let item = {...items[1], name: 'newName'};</code>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal