【发布时间】:2021-03-22 05:51:14
【问题描述】:
所以,我正在使用 react 并有一个按钮,当我按下按钮时,它使用 useState 将元素添加到数组中。现在,一旦我添加了第一个元素,我想在每 1 秒后删除第一个元素,直到数组为空并且我不再按下按钮。
我可以继续按下并添加项目,但在 2 秒过去后,可能使用计时器,它也应该继续从数组的前面移除。
const [id, addId] = useState([])
<button onClick={()=> addId([...id,newId])> Add Id </button>
所以,我有一个循环遍历 ID 并将它们绘制在屏幕上的视图。现在,当它被绘制时,它应该会消失,并且在我第一次按下按钮并每 2 秒将其移除后,它也会从阵列中移除。
我无法正确使用 setInterval、setTimeout 和 useEffect。它最终陷入无限循环......
假设我按了 3 次,数组将是 [1,2,3],1 秒后,它应该是 [2,3],然后 1 秒后,它应该是 [3],最后停止一个空数组 []。一旦我按下按钮,即使我停止按下按钮,删除过程也不应该停止,直到数组为空。
希望现在清楚我想要什么
【问题讨论】:
-
什么不起作用?
-
我已经更新了@NinaScholz 的问题
标签: javascript arrays reactjs react-native