【问题标题】:how to use updated state in react [duplicate]如何在反应中使用更新的状态[重复]
【发布时间】:2021-11-14 10:25:12
【问题描述】:

这个问题还与在 React 组件中的函数内部使用更新的 Redux 状态有关。 我想知道如何在 React 的某种形式的循环中使用/更新状态。 示例:

useEffect(() => {
    const interval = setInterval(() => {
        setCount(count + 1)
        console.log('Count:', count)
    }, 3000);
    return () => clearInterval(interval)
}, [])

这将返回控制台:

Count: 0
Count: 0
Count: 0
Count: 0
...

我需要做些什么来避免这种情况? (我想得到 Count: 0, Count: 1, Count: 2 作为结果)

【问题讨论】:

  • 显示整个组件。在效果中使用count 是在使用陈旧数据。您还应该使用setCount(curr => curr + 1),以免在更新时意外使用过时数据。
  • 好的,但是在这个等待状态更新的问题中,您将如何实现呢? stackoverflow.com/questions/69242831/…@Emile Bergeron

标签: javascript reactjs loops redux state


【解决方案1】:

你应该将一个函数传递给setCount:

useEffect(() => {
  const interval = setInterval(() => {
    setCount(prevCount => {
      console.log('Count:', prevCount)
      return prevCount + 1;
    });
  }, 3000);
  return () => clearInterval(interval)
}, [])

【讨论】:

猜你喜欢
  • 2022-01-16
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 2020-08-31
  • 2019-08-29
  • 2021-10-02
  • 2020-01-12
  • 2021-03-18
相关资源
最近更新 更多