在閱讀了關於Controlled Components和setState後,我遇到了構建React的連貫心智模型的問題。儘管setState是異步的,爲什麼React的受控組件工作
從所提到的文檔一個控制的部件的例子,包含以下相關我的問題片段:
handleChange(event) {
this.setState({value: event.target.value});
}
render() {
return (
<input type="text" value={this.state.value} onChange={this.handleChange}/>
)
}
的問題是:由於用戶能夠以高速執行任意的編輯操作,並setState
大概是異步,是否有可能在t0時刻onChange
被event.target.value='a'
調用導致setState({ value: 'a'})
,那麼在t1時刻用戶將文本更改爲'b',並且在時刻t2,通過setState創建的「排隊」請求開始,以及文本被替換爲陳舊值'a'?
您將只有一個用戶同時與一個組件進行交互。可以肯定的是,如果值來自數據庫發生這些事情,那麼您應該確保如果共享數據,則只有在用戶擁有最新數據集時纔會進行保存,在所有其他情況下,1個組件1用戶應該apply – Icepickle