由於React的setState是異步的,建議將它的調用包裝在async/await函數中,這樣以後任何嚴重依賴於狀態變量的事情總會得到更新值?在ES8的async/await中包裝React的setState函數
1
A
回答
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)
相關問題
- 1. CytoscapeJS在React中調用setState函數
- 2. React的微小問題setState函數
- 3. React ES6中的SetState
- 4. setState在ES2016 React中的箭頭函數中調用時未安裝組件
- 5. setState函數在使用ES6語法的React中未定義?
- 6. React setState函數和複雜對象
- 7. React setState函數不會更改值
- 8. setInterval和React中的setState
- 9. React和React-Draggable中的setState問題
- 10. React本機setState
- 11. React setState和update()addon
- 12. React setState可重用
- 13. fgets中的包裝函數()
- 14. 爲什麼在React的#setState中使用函數解決異步問題?
- 15. 在類中包裝函數
- 16. React Native componentDidMount中的setState不起作用
- 17. 用React中的setState更新對象
- 18. React - componentWillMount()中的setState導致UI延遲
- 19. setState在componentDidMount()中不起作用 - React
- 20. 如何在React中使用'update'&setState(prevState)?
- 21. React JS setState(...):只能更新已安裝或正在安裝的組件
- 22. 如果我在ReactJS或React Native的類的構造函數中使用setState()函數會發生什麼?
- 23. 廣東話安裝asyncawait使用NPM
- 24. React服務器端渲染器省略setState回調函數?
- 25. 爲什麼我必須在React的匿名函數中包裝我的onClick屬性的函數?
- 26. 用另一個函數包裝一個tornado.gen.engine包裝的函數
- 27. React setState +'prevState'從哪裏來?
- 28. React setState更新道具
- 29. typescript react setState with user input
- 30. React - setState不重置輸入
setState爲您提供回調,您可以使用該回調進行取決於當前狀態的更改。看到這個https://stackoverflow.com/questions/42038590/when-to-use-react-setstate-callback/42038724#42038724 –