reactjs - 如何在React中正确使用setinterval

标签 reactjs setinterval

为什么在react中每次使用setinterval计数都会增加2,React版本是18

 const [count, setCount] = useState(0)
  useEffect(() => {
    setInterval(() => {
      setCount(count => count + 1)
    }, 1000)
  }, [])

  return (
    <div>{count}</div>
  )

最佳答案

您想要清理间隔。

您可能会看到它被触发两次,因为 React 在 Debug模式下挂载您的组件两次以向您显示此类错误。

 const [count, setCount] = useState(0)
  useEffect(() => {
    const interval = setInterval(() => {
      setCount(count => count + 1)
    }, 1000)
    return () => clearInterval(interval)

  }, [])

  return (
    <div>{count}</div>
  )

关于reactjs - 如何在React中正确使用setinterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76807744/

相关文章:

iphone - 如何从 UILocalNotification 对象获取下一个触发日期

javascript - 停止倒数计时器 Javascript 并调用操作

reactjs - 调用 firestore collection() 在博览会上不起作用

javascript - ReactJs 如何从不同页面向表添加行

javascript - 连接语法与扩展语法

javascript - 在每次循环迭代上添加延迟

javascript - node.js:setInterval() 跳过调用

javascript - 如果传递给 setTimeout 的函数出现错误,组件不会崩溃,为什么?

javascript - ReactJS map onClick 获取值

jquery - 如何使用 jQuery 使阴影闪烁?