【发布时间】:2021-02-27 06:22:41
【问题描述】:
我希望 updateState 在每次循环之后创建一个循环并添加到 cnt 1(这是我想要做的一个简短示例,所以它必须像这样,而不是第一次添加 3)。但是因为 setCnt 是异步的,所以它只为所有 3 的循环添加一个。 任何 idia 如何使其添加每个循环 3 同步?
const [cnt, setCnt] = useState(0)
const updateState = () => {
for (var i = 1; i<3; i++){
setCnt(cnt + 1)
}
}
useEffect(() => {
console.log('new state', cnt)
}, [cnt])
return (
<div>
<button onClick={updateState}>Change state</button>
</div>
)
}
谢谢
【问题讨论】:
-
在问题中添加相关代码。看起来您在更改后直接在线上打印状态,那是行不通的。状态变化是异步的
-
哦,谢谢,您知道如何解决吗?
-
解决什么?下面威廉的回答显示了如何正确打印它,您还有其他问题吗?我们需要更好地描述您的具体问题和相关代码
标签: javascript html reactjs react-hooks