Nach dem Lesen von Controlled Components und setState habe ich Probleme mit dem Aufbau eines kohärenten mentalen Modells von React.Warum funktionieren die gesteuerten Komponenten von React, obwohl setState asynchron ist
Das Beispiel einer Controlled-Komponente aus dem doc erwähnt, enthält Fragmente relevant zu meiner Frage folgenden:
handleChange(event) {
this.setState({value: event.target.value});
}
render() {
return (
<input type="text" value={this.state.value} onChange={this.handleChange}/>
)
}
Die Frage ist: da der Benutzer beliebig bearbeiten Aktionen mit hohen Geschwindigkeit durchführen kann, und setState
ist vermutlich asynchron, ist es möglich, dass im Moment t0, onChange
wurde mit event.target.value='a'
aufgerufen, was setState({ value: 'a'})
verursacht, dann im Moment t1 Benutzer ändert Text auf 'b', und im Moment t2, die "Warteschlange" Anfrage über setState tritt, und der Text wird durch einen veralteten Wert "a" ersetzt?
Sie haben nur einen Benutzer, der gleichzeitig mit einer Komponente interagiert. Es kann natürlich sein, dass, wenn Werte von einer Datenbank kommen, dass diese Dinge auftreten, deshalb sollten Sie sicherstellen, dass wenn Sie Daten gemeinsam haben, dass das Speichern nur geschieht, wenn der Benutzer den neuesten Datensatz hat, in allen anderen Fällen 1 Komponente 1 Benutzer sollte anwenden – Icepickle