Heim > Web-Frontend > js-Tutorial > Wie aktualisiere ich Objekte in Arrays in ReactJS elegant?

Wie aktualisiere ich Objekte in Arrays in ReactJS elegant?

Barbara Streisand
Freigeben: 2024-12-15 03:35:08
Original
823 Leute haben es durchsucht

How to Elegantly Update Objects within Arrays in ReactJS?

Elegante Objektaktualisierungen in Arrays für ReactJS

In ReactJS kann die Verwaltung von Arrays von Objekten innerhalb des Status Ihrer Anwendung ein häufiges Szenario sein. Eine solche Aufgabe ist das Aktualisieren eines bestimmten Objekts innerhalb eines Arrays, was ohne ein klares Verständnis der verfügbaren Techniken eine Herausforderung darstellen kann.

Beispielszenario

Betrachten Sie die folgende Reaktion Komponentenbeispiel:

var CommentBox = React.createClass({
  getInitialState: function() {
    return {
      data: [
        { id: 1, author: "john", text: "foo" },
        { id: 2, author: "bob", text: "bar" },
      ],
    };
  },
  handleCommentEdit: function(id, text) {
    // Handle updating of the object inside the array
  },
});
Nach dem Login kopieren

Das Ziel besteht darin, das Objekt in this.state.data zu aktualisieren, wenn die handleCommentEdit-Methode aufgerufen wird, und insbesondere das zu ändern Texteigenschaft.

Object.assign()-Ansatz

Eine häufig bevorzugte Methode ist die Verwendung von Object.assign(). Es bietet eine übersichtliche Möglichkeit, ein vorhandenes Objekt zu aktualisieren, ohne ein neues zu erstellen.

handleCommentEdit: function(id, text) {
  this.setState({
    data: this.state.data.map(el => (el.id === id ? Object.assign({}, el, { text }) : el)),
  });
}
Nach dem Login kopieren

Hier durchlaufen wir jedes Element in this.state.data. Wenn die ID eines Elements mit der angegebenen ID übereinstimmt, erstellen wir ein neues Objekt, indem wir mithilfe von Object.assign() die ursprüngliche EL mit dem aktualisierten Text kombinieren. Andernfalls geben wir das ursprüngliche Element zurück.

Spread-Operator-Ansatz

Für einen moderneren Ansatz können Sie den ES2018-Spread-Operator verwenden:

handleCommentEdit: function(id, text) {
  this.setState({
    data: this.state.data.map(el => (el.id === id ? { ...el, text } : el)),
  });
}
Nach dem Login kopieren

Ähnlich wie bei der Object.assign()-Methode verwenden wir den Spread-Operator, um ein neues Objekt zu erstellen, indem wir das ursprüngliche Objekt mit dem aktualisierten Text kombinieren Eigenschaft.

Sowohl der Object.assign()- als auch der Spread-Operator-Ansatz bieten eine effiziente und elegante Möglichkeit, Objekte innerhalb eines Arrays zu aktualisieren und gleichzeitig die Unveränderlichkeit in ReactJS-Anwendungen aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Objekte in Arrays in ReactJS elegant?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage