【发布时间】:2020-09-06 22:03:16
【问题描述】:
我很好奇为什么在 for 循环中设置状态不能按预期工作。
这是我使用钩子的代码。
const [count, setCount] = useState(0);
const onButtonPress = () => {
for(let i=0; i<100; i++){
setCount(i);
}
}
useEffect(()=> {
console.log('useEffect called');
console.log(count);
},[count])
我在单击按钮时调用 onButtonPress 函数。
我期望的行为:计数状态应该更新 100 次,因此调用 useEffect 挂钩 100 次。
实际行为:useEffect 挂钩仅在循环的最后一次迭代后被调用一次。
我知道官方的反应文档说钩子不应该在循环中使用,但他们的解释不是很清楚。
我想了解为什么在循环中调用 setCount 不起作用。
注意:我知道还有其他方法可以达到预期的结果,但我有兴趣了解为什么不会多次调用 setCount。
【问题讨论】:
标签: reactjs react-hooks use-state