我尝试用useEffect和setInterval创建简单的计时器。理论上,点击它必须:
return <ProgressBar animated now={percentages} label={`${percentages}%`} />; 但实际上,它不能正常工作,在单击时创建无穷多个呈现。

你能告诉我为什么吗?非常感谢。
我什么都试过了,但似乎我根本不明白一些反应特征:
发布于 2022-11-11 00:51:17
useEffect的第二个参数是依赖数组。因为您没有提供任何依赖项,所以它会运行每个呈现。因为它更新了状态,所以它会导致重呈现,从而再次无限地运行。将[cooldownDuration]添加到使用效果中,如下所示:
useEffect(() => {...}, [cooldownDuration])
这将使useEffect只在cooldownDuration更改时运行。
https://stackoverflow.com/questions/74396861
复制相似问题