在使用React過程中,中可以使用this.state來訪問需要的某些狀態,但是需要更新或者修改state時,一般而言,我們都會使用setState()函數,從而達到更新state的目的,setState()函數執行會觸發頁面重新渲染UI。但是!!!setState是異步的!!!
1. 語法:
setState(updater[, callback]) //
updater是要改變的state對象,callback是state導致的頁面重新渲染的回調,等價于componentDidUpdate
一般而言,在設置頁面某些state的時候,需要先設置好state,然后再對頁面的一些參數進行修改的時候,可以使用setState的回調函數。
2. 分析一下區別
不在回調中使用參數,我們在設置state后立即使用state:
this.state = {foo: 1};this.setState({foo: 123});console.log(this.state.foo);// 1在回調中調用設置好的state
this.state = {foo: 2};this.setState({foo: 123}, ()=> { console.log(foo); // 123});關于setState的回調函數的作用大概如此,這個函數相當于componentDidUpdate函數,和生命周期的函數類似。
3. 注意:
參考文檔:https://facebook.github.io/react/docs/react-component.html#setstate
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選