React應用創建完成后,只有執行this.setState或this.forceUpdate方法才能更新應用,forceUpdate一般用得比較少,在有些比較另類的需求里比較適合吧。它們的使用方法如下:
- setState(partialState,callback) ;更新組件的state,partialState是新的state部分對象,callback是更新完成后的回調函數
- forceUpdate(callback) ;強制更新整個應用,callback是更新完成后的回調函數
setState的參數1還可以是個方法,此時可以傳遞兩個參數,參數1是當前的state,參數是最新的props,舉個例子:
<div id="root"></div> <script type="text/babel"> class App extends React.Component{ constructor(props){ super(props) } state={num:0} clickHandle1 = ()=>{ this.setState({num:this.state.num+1}) //常規的寫法 } clickHandle2 = ()=>{ this.setState(e=>({num:e.num+1})) //可以是一個函數,返回一個對象 } clickHandle3 = ()=>{ this.setState(e=>e.num++); //還可以直接在函數內對state進行操作 } render(){ return <div> <button onClick={this.clickHandle1}>測試1</button> <button onClick={this.clickHandle2}>測試2</button> <button onClick={this.clickHandle3}>測試3</button> <p>{this.state.num}</p> </div> } } ReactDOM.render(<App/>,root) </script>
我們點擊測試1、測試2和測試3,都會使React應用的num加1。
writer by:大沙漠 QQ:22969969