reactjs / reactjs/react.dev

[Beta] Using the structuredClone() for updating a nested object

Ouverte
#5,597 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
JavaScript
Étoiles
11.8k
Forks
7.9k
Merge moyen
1 j 11 h
PR mergées (30 j)
11

Description

https://beta.reactjs.org/learn/updating-objects-in-state#updating-a-nested-object

I think that deep cloning object with structuredClone() and putting the clone into setPerson() is better solution for the problem than using the spread operator.

The the example that was provided can easily be changed this way:

personCopy = structuredClone(person);
personCopy.artwork.city = "New Delhi";
setPerson(personCopy);

This can help avoiding the mistake when spread operator is used to deep clone objects. See example below:

const original = { a: { b: 1 } };
const falseCopy = { ...original };

falseCopy.a.b = 2;

console.log(falseCopy); // logs {a: {b: 2}}
console.log(original); // also logs {a: {b: 2}}

I am sorry if I have failed to follow contributing guidelines. I am aware that the second example is not the best representation of my point.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par la section liée de la documentation React, « Updating a nested object », et examinez l’exemple actuel avec l’opérateur spread ainsi que la proposition concernant structuredClone(). Le travail est considéré comme terminé lorsque la section présente clairement l’approche de mise à jour choisie et n’induit pas les lecteurs en erreur au sujet de la différence entre copie superficielle et copie profonde.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, react
Domaine
documentation
Type d'issue
Documentation
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.