在 onBlur 和 onFocus 中连续 2 个 setState 之后只触发了 1 个渲染

Only 1 render triggered after 2 setState in onBlur & onFocus in a row

打开CodePen,切换控制台。

当使用keydown回调触发焦点改变时:

  1. 单击黑色区域聚焦 outside div。
  2. 按任意 箭头键 聚焦 inside div
  3. render 被调用 ONCE

使用点击触发焦点变化时:

  1. 单击黑色区域聚焦 outside div。
  2. 按 Tab单击黄色区域 聚焦 inside div
  3. render 被调用 TWICE

两种场景下连续触发blur&focus事件,为什么渲染时间不一样?

我提交了一个错误来做出反应并得到了回应。 在这里查看:https://github.com/facebook/react/issues/19698