nextState
可以为一个对象,包含0个或多个要更新的key。最简单的用法为:
this.setState({
key1: value1,
key2: value2
});
这种方式能应付大部分的应用场景,但是看看下面这种情况:
this.setState({
count: this.state.count + 1
});
this.setState({
count: this.state.count + 1
});
最后得到的count
却是不可控的。因为setState
不会立即改变this.state
,而是挂起状态转换,调用setState
方法后立即访问this.state
可能得到的是旧的值。
setState
方法不会阻塞state
更新完毕
第二个setState
可能还没等待第一次的state
更新完毕就开始执行了,所以最后count
可能只加了1。