In React wird die setState()-Methode verwendet, um den Zustand einer Komponente zu aktualisieren. Ein häufiges Missverständnis besteht jedoch darin, dass setState() den Status sofort ändert. Dies ist nicht der Fall.
In der Dokumentation von React heißt es eindeutig: „setState() mutiert this.state nicht sofort, sondern erstellt einen ausstehenden Zustandsübergang.“ Dies bedeutet, dass nach dem Aufruf von setState() beim Zugriff auf this.state immer noch der vorhandene Wert zurückgegeben werden kann. React ermöglicht dieses Verhalten zur Leistungsoptimierung, da es aus Effizienzgründen mehrere setState()-Aufrufe stapeln kann.
Beachten Sie den folgenden Codeausschnitt aus dem Abschnitt „Formulare“ der React-Dokumentation:
handleChange: function(event) { console.log(this.state.value); this.setState({value: event.target.value}); console.log(this.state.value); },
Wenn Sie den Eingabewert im Browser aktualisieren, werden Sie feststellen, dass beide console.log-Anweisungen denselben Wert ausgeben. Dieses Verhalten zeigt die asynchrone Natur von setState(). Das erste console.log zeigt den Anfangszustandswert, während das zweite immer noch denselben Wert anzeigt, obwohl wir ihn mit setState() aktualisiert haben.
Bei Bedarf Um Code auszuführen, nachdem die Statusänderung stattgefunden hat, bietet React eine Lösung:
this.setState({value: event.target.value}, function() { console.log(this.state.value); });
In diesem Fall wird der an setState() übergebene Rückruf ausgeführt, nachdem die Statusaktualisierung erfolgt ist abgeschlossen und stellt sicher, dass console.log den aktualisierten Statuswert druckt.
Das obige ist der detaillierte Inhalt vonWarum aktualisiert „setState()' den Komponentenstatus von React nicht sofort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!