1、基本使用方法
//主要用于更新用户界面、响应事件处理和服务器响应
setState(updater, [callback])
//(state, props) => stateChange // typeof stateChange == 'object'
方式1: setState(state=>{
return {key : value}
})
等价于
方式2: setState({key : value})
//setState不会立即更新state的状态,而是进行成批处理或者推迟更新,目的是避免高频率渲染,这种情况会在调用this.state时产生陷阱
//顺次调用setState我们希望count每次增加1,最后输出3, 然而实际情况输出值为1
incrementCount() {
this.setState({count: this.state.count + 1});
}
handleSomething() {
this.incrementCount();
this.incrementCount();
this.incrementCount();
}
//原因在于state状态值更新发生在组件重新渲染之后,因此当前取到的每个count均为未更新值,即0
//解决方法 setState传入函数做参数而非直接传入对象,state是一个引用,指向当改变正在被应用时的组件状态