Heim > Artikel > Web-Frontend > Wie entferne ich ein Element aus einem Array im Reaktionszustand und behalte dabei die Unveränderlichkeit bei?
Entfernen eines Elements aus einem Array-Status in React
In React ist die Statusverwaltung entscheidend für die Pflege der internen Daten der Komponente. Beim Umgang mit Arrays im Status ist die Aufrechterhaltung der Unveränderlichkeit wichtig, um häufige Fallstricke zu vermeiden.
Stellen Sie sich das Szenario vor, bei dem ein Element aus einem Array im Status entfernt wird. Ein gängiger Ansatz besteht darin, das ursprüngliche Array mit Array.prototype.delete() zu mutieren, wie in der Frage gezeigt:
removePeople(e) { var array = this.state.people; var index = array.indexOf(e.target.value); delete array[index]; }
In React wird jedoch empfohlen, eine direkte Mutation des Zustands zu vermeiden. Erstellen Sie stattdessen eine neue Kopie des Arrays, die die gewünschten Änderungen enthält:
removePeople(e) { this.setState({people: this.state.people.filter(function(person) { return person !== e.target.value; })}); }
Dieser Ansatz verwendet die Methode Array.prototype.filter(), um ein neues Array zu erstellen, das alle Elemente außer dem zu entfernenden enthält . Das ursprüngliche Array wird nicht verändert, wodurch die Unveränderlichkeit des Zustands gewährleistet wird.
Durch die Verwendung dieses Ansatzes bewahren Sie die Zustandsintegrität und vermeiden potenzielle Probleme im Zusammenhang mit Zustandsmutationen in React.
Das obige ist der detaillierte Inhalt vonWie entferne ich ein Element aus einem Array im Reaktionszustand und behalte dabei die Unveränderlichkeit bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!