2017-08-10 54 views
1

陣營慢的setState我有具有輸入字段連接了onChange事件的簡單陣營組件。 onChange事件觸發,並使用輸入字段中的值更新某個組件狀態。但是,我注意到當控制檯日誌記錄狀態是一個字符behinde。因此,如果i型 「你好」 控制檯顯示狀態爲在的console.log

'' 上ħ

'H' 上HE

'E' 上HEL

'L' 上的地獄

HELLO上的'L'

這是怎麼回事?

+0

[如何獲得價值可能重複的選擇的選項中作出反應的自舉選擇FromControl](https://stackoverflow.com/questions/45612278/how-to-get-value-of-selected-option-in-react-bootstrap-select-fromcontrol) –

回答

3

this.setState是異步的。這意味着,記錄不能隨着時間的狀態相匹配時控制檯得到更新 如果你想看到確切值狀態得到了改變後,你必須做如下

this.setState({ 'updated': 'state'},() => { 
    console.log(this.state.updated); 
}); 
+0

真棒。謝謝 :) – Fripo