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函数中读取