setState函数在React中的运行机制是,它会用最新的state值去请求一个新的烘托,但正在运行的函数中的值不会受到影响。State表现为一个快照,组件在被调用时会为该次烘托提供一个state快照,然后根据这个快照计算出的值来执行烘托。在一次烘托中,state变量的值不会发生变化,因此正在运行的函数不会受到影响。解决这个问题的方法是,在更新state之前将其保存在一个变量中,然后将保存的变量传递给set函数。另外,如果需要在一次事务中多次更新同一个state,可以使用更新函数来实现。
深入理解React中的setState
以下代码全部基于React15(React16代码太复杂了看不懂哇- -)。 setState不一定是同步的 在React官方文档中有这么一句话state-updates-may-be-asynchronous。 下面这两个很经典也是新人很容易糊涂的场景就是由上面这句模棱两可的话带来的。 1 2 3 4 5 6 7 8 ...
完成下面两步后,将自动完成登录并继续当前操作。