setState更新状态的2种写法
setState更新状态的2种写法
1、setSate(stateChange, [callback])----对象式的setState
stateChange为状态改变对象(该对象可以体现出状态的改变) callback是可选的回调函数,它在状态更新完毕、界面更新后(render调用后)才被调用
2、setSate(updater, [callback])----函数式的setState
updater为返回stateChange对象的函数 updater可以接收到state和props callback是可选的回调函数,它在状态更新完毕、界面更新后(render调用后)才被调用
this.setState(state => ({count: state.count + 1}))
3、总结
对象式的setState是函数式的setState的简写方法(语法糖) 使用原则: (1)如果新状态不依赖原状态 ===》使用对象方式 (2)如果新状态依赖于原状态===》使用函数方式 (3)如果需要在setState()执行后获取到最新的状态数据,要在第二个callback函数中读取