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