setState是同步还是异步自定义合成事件和react钩子函数中异步更新state以在自定义click事件中的setState为例点击一次,最终this.state.count的打印结果是1,页面展示的是2。通过现象看,三次setState只是最后一次setState生效了,前两次都setState无效果。因为假如把第一次setState改为+3,count打印结果为1,展示结果为2,没有发生变化。此时,我们可以调整代码,通过setState的第二个参数,来获得更新后的state:此时,点击一次,三个setState的回调函数中,打印结果分别是。可以发现,如果setState以传参的方式去更新state,几次setState并不会只更新最后一次,而是几次更新state都会生效。将setState第一个参数换为函数:打印出的结果和上边一致。
暂无评论