为什么在此示例中React会看到旧状态?

绿三角

这是一个显示数字(最初为0)和一个按钮的组件,单击该按钮可递增该数字。如果数字为10,则还会显示庆祝消息。

function App() {
  const [count, setCount] = React.useState(0);
  const [milestone, setMilestone] = React.useState(false);

  const increment = () => {
    setCount(count + 1);
    if (count === 10) {
      setMilestone(true);
    } else {
      setMilestone(false);
    }
  };

  return (
    <div className="App">
      <h1>{count}</h1>
      <button onClick={increment}>+1</button>
      {milestone ? <h1>Happy aniversary!</h1> : null}
    </div>
  );
}

当我非常困惑地展示这个“周年快乐!”时,当显示的数字为11时显示消息,我不知道为什么。

光盘..

因为count仅第十一次点击是十。

您可以将增量函数更改为:

const increment = () => {
    const newCount = count + 1
    setCount(newCount);
    setMilestone(newCount === 10);
};

或者可以setMilestone在内使用React.useEffect,例如:

React.useEffect(() => {
  setMilestone(count === 10);
}, [count])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么JavaScript类中的事件侦听器会看到旧的上下文变量?

来自分类Dev

为什么尽管使用`quiet`引导,有时仍会看到systemd状态消息?

来自分类Dev

为什么在此示例中StateT更快?

来自分类Dev

为什么在此示例中需要括号?

来自分类Dev

为什么Play商店中某些用户可能不会看到评论的原因

来自分类Dev

为什么在Cassandra中增加计数器时会看到“读取”?

来自分类Dev

React-为什么在此示例中不需要绑定?

来自分类Dev

什么是AllowAmbiguousTypes,为什么在此“ forall”示例中需要它?

来自分类Dev

为什么我会看到CheckMX贬值的警告?

来自分类Dev

为什么创建QueueTrigger WebJob函数时会看到FunctionIndexingException?

来自分类Dev

为什么在使用 size() 或 count() 时会看到不同的结果?

来自分类Dev

为什么在此示例中Map会有return语句?

来自分类Dev

为什么SFINAE在此示例中无法按预期工作?

来自分类Dev

为什么在此示例中命令注入不起作用?

来自分类Dev

为什么tsort在此示例中不报告任何循环?

来自分类Dev

为什么在此示例中ArrayAdapter始终为null?

来自分类Dev

为什么git revert在此示例中失败?

来自分类Dev

为什么在此示例代码中不需要 readSync?

来自分类Dev

为什么在此示例中需要对变量调用detach?

来自分类Dev

Kotlin:为什么在此示例中Sequence更高效?

来自分类Dev

为什么在此示例中getElementsByTagName不起作用

来自分类Java

为什么在此示例中Gradle编译失败?

来自分类Dev

为什么在此简单示例中Frame.tryValues失败?

来自分类Dev

为什么在此MobX示例中需要“获取”

来自分类Dev

为什么在此示例中参数b具有类型a?

来自分类Dev

为什么在此示例中需要Handler对象?

来自分类Dev

为什么useRef在此示例中不起作用?

来自分类Dev

为什么在此队列示例中需要取消任务?

来自分类Dev

为什么在此示例中以这种方式计算此指数?

Related 相关文章

  1. 1

    为什么JavaScript类中的事件侦听器会看到旧的上下文变量?

  2. 2

    为什么尽管使用`quiet`引导,有时仍会看到systemd状态消息?

  3. 3

    为什么在此示例中StateT更快?

  4. 4

    为什么在此示例中需要括号?

  5. 5

    为什么Play商店中某些用户可能不会看到评论的原因

  6. 6

    为什么在Cassandra中增加计数器时会看到“读取”?

  7. 7

    React-为什么在此示例中不需要绑定?

  8. 8

    什么是AllowAmbiguousTypes,为什么在此“ forall”示例中需要它?

  9. 9

    为什么我会看到CheckMX贬值的警告?

  10. 10

    为什么创建QueueTrigger WebJob函数时会看到FunctionIndexingException?

  11. 11

    为什么在使用 size() 或 count() 时会看到不同的结果?

  12. 12

    为什么在此示例中Map会有return语句?

  13. 13

    为什么SFINAE在此示例中无法按预期工作?

  14. 14

    为什么在此示例中命令注入不起作用?

  15. 15

    为什么tsort在此示例中不报告任何循环?

  16. 16

    为什么在此示例中ArrayAdapter始终为null?

  17. 17

    为什么git revert在此示例中失败?

  18. 18

    为什么在此示例代码中不需要 readSync?

  19. 19

    为什么在此示例中需要对变量调用detach?

  20. 20

    Kotlin:为什么在此示例中Sequence更高效?

  21. 21

    为什么在此示例中getElementsByTagName不起作用

  22. 22

    为什么在此示例中Gradle编译失败?

  23. 23

    为什么在此简单示例中Frame.tryValues失败?

  24. 24

    为什么在此MobX示例中需要“获取”

  25. 25

    为什么在此示例中参数b具有类型a?

  26. 26

    为什么在此示例中需要Handler对象?

  27. 27

    为什么useRef在此示例中不起作用?

  28. 28

    为什么在此队列示例中需要取消任务?

  29. 29

    为什么在此示例中以这种方式计算此指数?

热门标签

归档