初始化该组件当前状态的state值必须是一个javascript对象,不能是string,或者number,boolean等简单的基本数据类型
即使你想要存储一个只是数字类型的数据,也只能把它存作state...传递一个函数可以让你在函数内访问到当前的state的值,因为setState的调用是异步的,this.state.以及this.props不会立即更新,它会被放置到一个队列中延迟合并处理
只有当state...和props数据发生改变时,render函数才会重新渲染
所以你是可以链式的进行更新,并确保它们是建立在另一个之上的,这样不会发生冲突
这也正是setState函数传递一个函数的原因,绝大多数时候,最优的方式是...,不仅可以更改props也可以更改state
它接收两种参数形式,一个是对象,另一个是函数
当需要基于当前的state计算出新的值进行处理,给setState函数应该传递一个函数而不是对象,这样可以保证每次调用的状态值都是最新的...至于为什么React不选择同步更新this.state
这是因为React是有意这么设计的,做异步等待,在constructor构造器函数执行完后,在执行render函数,直到所有组件的事件处理函数内调用