关于React的setState的一些疑问


今天在练习react的表单中,发现一个比较奇怪的问题。
问题描述:在type为radio的单选框上添加onChange事件,在这个handler事件中的setState()方法总是会有一个延迟执行的情况?
这是一个很简单的React Component

render 方法返回的JSX

onChange handler

结果

结果

我们看到正常情况下的 this.state.formdata.count 的结果应该和 counts 结果保持一致,但是在控制台里(也就是最后一张图片里面)他们的取值不同?并且当我再次点击radio 的时候显示分别是 2 1 ,这里就解释不通了,为什么第一次 setState() 方法没有调用?就像是有延迟执行一样。求解~不胜感激T-T

react.js JavaScript

禁丨雅蠛蝶 8 years, 10 months ago

不是没调用,是setState是个异步方法,这个方法本身还有一个回调函数的参数的

冲锋de蜗牛 answered 8 years, 10 months ago

Image

看这里就知道了哦,不是同步方法

一直不高端 answered 8 years, 10 months ago

Your Answer