
React18 setState异步更新
因为setState是异步的,当前队列里,它在寻找myState的值的时候,通过作用域找到的是状态的初始值1,所以该更新执行后myState变为2,即从7->2。这里要注意,setTimeout整个函数式先执行的,回调会被放在宏任务里,它们的state的作用域是在click时候的状态下的上下文,即myState是1,flag是true。setState是异步更新的,setState((pre)=>...)此种更新方式将会依赖上一次的状态值,多个state更新会进行批处理更新,减少渲染次数。





