我正在使用 PrimeReact 进度条,并希望在页面加载时动态更新它。我的代码如下 -
const IntroPage = () => {
const [progressBarValue, setProgressBarValue] = useState(0)
useEffect(() => {
setInterval(function() {
let val = progressBarValue;
val += Math.floor(Math.random() * 10) + 5;
if (val >= 100) {
val = 100;
}
setProgressBarValue(val)
}, 1000);
}, [])
return (
<div className='main-container'>
<div></div>
<div className='progress-bar-container'>
<ProgressBar className='progress-bar' value={progressBarValue}></ProgressBar>
</div>
<div></div>
</div>
)
}
出于某种原因,当我加载页面时,进度条不会连续增加 100,它来回移动,我不太确定为什么会发生这种情况。所以它会达到 8% 或 10%,然后下降到 6,等等。我认为问题是每次设置新状态时,它都不会添加到先前设置的状态之上。任何帮助,将不胜感激。
更新:我也尝试将 setInterval 放在一个单独的函数中并调用它,但这也做同样的事情 -
useEffect(() => {
loadProgressBar()
}
}, [])
function loadProgressBar() {
setInterval(function(){
let val = progressBarValue;
val += Math.floor(Math.random() * 10) + 5;
if (val >= 100) {
val = 100;
clearInterval();
}
setProgressBarValue(val)
}, 1000);
}