Maison > interface Web > js tutoriel > Comment mettre à jour efficacement les objets dans un état de tableau ReactJS ?

Comment mettre à jour efficacement les objets dans un état de tableau ReactJS ?

Linda Hamilton
Libérer: 2024-12-05 19:29:10
original
371 Les gens l'ont consulté

How Do I Efficiently Update Objects within a ReactJS Array State?

Mise à jour des objets dans le tableau ReactJS : une exploration approfondie

Dans ReactJS, les tableaux dans un état contiennent souvent des objets. La mise à jour de ces objets peut être un défi. Cet article examine une méthode efficace pour accomplir cette tâche.

Comprendre le problème

Considérons l'exemple suivant :

var CommentBox = React.createClass({
  getInitialState: function() {
    return {data: [
      { id: 1, author: "john", text: "foo" },
      { id: 2, author: "bob", text: "bar" }
    ]};
  },
  handleCommentEdit: function(id, text) {
    var existingComment = this.state.data.filter({ function(c) { c.id == id; }).first();
    var updatedComments = ??; // not sure how to do this  

    this.setState({data: updatedComments});
  }
}
Copier après la connexion

La fonction handleCommentEdit est responsable de la mise à jour de la propriété text d'un objet commentaire avec un identifiant spécifique. Cependant, la question se pose : comment créer un tableau de commentaires mis à jour ?

Une solution robuste

Une solution efficace consiste à utiliser Object.assign :

handleCommentEdit: function(id, text) {
    this.setState({
      data: this.state.data.map(el => (el.id === id ? Object.assign({}, el, { text }) : el))
    });
}
Copier après la connexion

Cet extrait de code mappe les commentaires existants, préservant tous les objets inchangés. Pour l'objet avec l'identifiant correspondant, il crée un nouvel objet avec la propriété de texte mise à jour tout en conservant les propriétés d'origine.

Améliorations ES2018

Pour ceux qui adoptent la dernière version de JavaScript fonctionnalités, ES2018 fournit une solution encore plus concise en utilisant spread :

this.setState({
  data: this.state.data.map(el => (el.id === id ? {...el, text} : el))
});
Copier après la connexion

Avec spread, l'objet mis à jour peut être créé en remplaçant simplement la propriété text existante.

Conclusion

La mise à jour d'objets dans des tableaux dans ReactJS nécessite une gestion minutieuse de l'immuabilité des objets. En tirant parti de Object.assign ou spread, les développeurs peuvent mettre à jour efficacement les propriétés des objets tout en conservant l'intégrité du tableau d'origine. Ces méthodes fournissent une solution robuste et succincte à ce défi de programmation ReactJS courant.

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