首页 > 解决方案 > 无法按时间间隔更新计数器

问题描述

我在 react 中构建了一个功能组件,它使用 setInterval 来更新状态,但是如果它只是每秒返回相同的时间而不是每秒少一个时间。

你能告诉我为什么吗?

非常感谢你提前!

import React from 'react'
import { useState } from 'react';

function Countdown(props) {

  let count;
  let countdown;

  const [time, setTime] = useState('')

  const timeSubString = props.timeData.callLength.substring(3)
  const startingTime = Date.parse('1970-01-01T00:' + timeSubString + 'Z')
  const interval = 1000;

  setInterval(() => {
    count = startingTime - interval;
    countdown = new Date(count).toISOString().slice(11, -5)
    setTime(countdown)
  }, interval);

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

export default Countdown;

标签: javascriptreactjs

解决方案


可以解决你的问题

  import { useEffect } from 'react'

  useEffect(() => {
        setInterval(() => function(.... DO something)), 1000)
    }, [])

推荐阅读