a=1
,你直接在 setState({a: a + 5})
后直接获取 a 的值其实还是 1 而不是6setState(stateChange, [callback])
,第二个可选参数就是回调, 它在状态更新完毕、界面也更新后(render调用后)才被调用change = a =>{ // 加入传入的a=1this.setState({a: a+5},()=>{console.log(this.state.a) // 6})console.log(this.state.a) // 1
}
setState(updater, [callback])------函数式的setState
- updater为返回stateChange对象的函数
- updater可以接收到state和props
- callback是可选的回调函数, 它在状态更新、界面也更新后(render调用后)才被调用。
change = a =>{ // 加入传入的a=1// 【A】:在这里通过state和props做处理也一样。。。this.setState((state, props)=>{// 可以做一些处理。。。其实在外面【A】处做也一样。。。return {a: state.a + 5}},()=>{console.log(this.state.a) // 6})console.log(this.state.a) // 1
}