2017-08-27 58 views
1

由於React的setState是異步的,建議將它的調用包裝在async/await函數中,這樣以後任何嚴重依賴於狀態變量的事情總會得到更新值?在ES8的async/await中包裝React的setState函數

+0

setState爲您提供回調,您可以使用該回調進行取決於當前狀態的更改。看到這個https://stackoverflow.com/questions/42038590/when-to-use-react-setstate-callback/42038724#42038724 –

回答

1

這將是一個可能的異步/等待實現。例如,你的內部反應成分:

setStateAsync(state) { 
    return new Promise((resolve) => { 
    this.setState(state, resolve) 
    }); 
} 

async setStateAndDoSomethingRightAfter(state) { 
    await this.setStateAsync({state}) 
    // now do something after 
} 

但我不知道這是否會是推薦。出於某種原因,有生命週期方法。

我相信做事情的「反應」的方式是把你的代碼,這是依賴於新狀態的componentDidMount/componentWillUpdate/componentDidUpdate內。

1

您可以使用setState的第二個參數回調。 DOCS
this.setState({ key: val }, callBack)

相關問題