深入认识React类组建修改状态-setState
- setState,它对状态的改变,可能是
异步
的; 如果改变状态的代码处于HTML元素事件中,则其是异步的,否则是同步
- 如果遇到某个事件中,需要同步调用多次,需要使用的函数方式得到最新状态。
最佳实践
- 把所有的setState当作是异步的。
- 永远不要信任getState调用之后的状态
- 如果要使用改变之后的状态,需要使用回调函数(setState的第二个参数)
- 如果新的状态要根据之前的状态进行计算,使用函数的方式改变状态(setState 的第一个函数)
React会对异步的setState进行优化,将多次setState进行合并(将多次状态改变完成后,在统一对state进行改变,然后触发render)