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。