所以在反應信任狀態,setState()
是異步,並且可以緩衝調用改變狀態。我明白了。並且,如果您以某種方式依賴狀態來計算新狀態,可如何使用setState((state) => {})
這樣的可選回調函數。我怎麼能在React.js
但可以說,我不想簡單地更新狀態,只是可以肯定的它實際上包含了在某個時間點?我們來舉個例子:
我有一個文本字段。當某人編輯該字段時,它將使用setState({ hasChanged: true })
設置狀態。很好。在onClick
回調(別的地方)我想檢查文本字段是否被「更改」並在繼續之前保存它的文本內容。但事情是我永遠不能確定state.hasChanged
實際上是與現實同步。不像setState((state) => {})
中的回調,我在這裏獨自一人。
所以做我創建了一個「影子狀態」(或者,至少是從反應狀態分離的狀態變量),並保持它的像這樣的情況下,剛剛更新了?似乎有點繁瑣,我懷疑這不是你應該怎麼做,所以這個問題。
編輯澄清:我只希望「檢查」狀態,並確保它的內容(因爲我我的情況,我會做一個保存到磁盤取決於它)。我其實不會更新狀態。如果是這樣的話,用的setState回調很可能是正確的選擇..
我在這種情況下,我會像'previousStateTextFiled狀態添加屬性'並與當前比較。如果不是 - > currentState是前面提到的) –