【发布时间】:2022-12-01 16:42:24
【问题描述】:
/**
* init array: [1, 2]
* Expect
* array per 1s: [1, 2, 3]
* array per 2s: [1, 2, 3, 4]
* array per (n)s: [1, 2, 3, 4, ..., n]
*/
const [countList, setCountList] = useState([]);
const counter = useRef(0);
useEffect(() => {
const interval = setInterval(() => {
counter.current = counter.current + 1;
setCountList([...countList, counter.current]);
}, 1000);
return () => clearInterval(interval);
});
return (
<>
<div>{countList.map((count) => count + ',')}</div>
</>
);
我希望每一秒,数组推送 1 个项目,然后在 UI 上显示它,但数组只更新最后一个项目。 Exp [1, 2] => [1, 3] => [1, 4] ...
【问题讨论】:
-
它非常适合我。有什么问题 ?
-
我认为出了点问题,但代码沙箱已运行
标签: reactjs react-hooks setinterval