【发布时间】:2023-03-29 19:57:01
【问题描述】:
我试图让一个计时器首先快速调用一个函数,然后放慢速度。我有一个 TimeInterval 状态,该状态会增加并作为道具传递给我的倒计时组件
<Countdown
isActive={RandominatorRunning}
target={() => NextSelection()}
timeToChange={TimeInterval}
/>
倒计时组件
import React, { useEffect } from 'react';
const Countdown = ({ isActive, target, timeToChange }) => {
useEffect(() => {
let interval = null;
if (isActive) {
interval = setInterval(() => {
target()
}, timeToChange)
} else if (!isActive) {
clearInterval(interval)
}
return () => clearInterval(interval)
}, [isActive])
return null
}
export default Countdown;
我的 TimeInterval 状态正常工作,并且会随着 NextSelection() 的调用而增加。然而,这似乎并没有增加倒计时组件的间隔,并且 NextSelection() 总是以相同的速度被调用,而不是以改变状态的 TimeInterval 速度。为什么倒计时组件没有随着 TimeInterval 状态更新它的速度?
【问题讨论】:
-
Counter 组件可以参考这个链接stackoverflow.com/a/61572623/6516699
标签: javascript reactjs react-native state react-props