setState 更新状态时异步的。而且他每次更新都会重新渲染数据。 即便是给setState({})传入空对象。还是会触发数据更新 --> dom 更新
React 状态更新函数setState 的两种方式
注意callback回调函数是可选的,他在状态更新完毕后,render 渲染后 才来调用callback函数。
- 对象方式的setState
setState({name: 'example'}, () => {
console.log()
})
setState((state,props) => {
state.name = 'fnUpdate';
}, () => {
console.log('do something')
})
两者间的区别
对象类型的setState 是函数setState的简写或者是语法糖
区别:
1、如果新状态不依赖于旧状态 =====> 使用对方方式
2、如果新状态依赖于原状态 =======> 使用函数方式
3、如果想在状态更新后(setState)获取到最新的状态数据,则要在callback回调函数里面获取。