【发布时间】:2020-12-04 01:33:00
【问题描述】:
我想在每一秒之后增加状态 [second] = [second + 1]。
const [second,setSecond] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setSecond(second+1)
}, 1000);
return () => clearInterval(interval);
}, []);
但似乎出现了一个无限循环,[秒]只增加了一次,从0到1,就停止了运行。
我更改了我的代码
setSecond(second+1)
到
setSecond((second) => {return second+1})
这个运行没有问题:
const [second,setSecond] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setSecond((second) => {return second+1})
}, 1000);
return () => clearInterval(interval);
}, []);
说真的,我还是没搞清楚。谁能向我解释为什么?提前致谢!
【问题讨论】:
标签: reactjs use-effect use-state