Думаю, вы не понимаете, как работает useState
(или даже this.setState
, если вы использовали классы). Эти операции всегда асинхронны, React планирует эти изменения в соответствии с тем, что он считает приоритетным или нет. возвращает Promise
.
С точки зрения того, как работает React, это ничего не меняет. Таким образом, ваши handleSyncUpdate
и handleAsyncUpdate
в основном одинаковы для React, они оба запускают асинхронные c операции (изменение состояния).
setCount1(count => count + 1)
- Используя это, вы буквально используете последнее состояние значение для обновления, гарантируя, что новое значение будет последним + 1.
setCount1(count1 + 1)
- В этом случае вы используете значение, которое изменено другим setState
между моментом этого setState
вызывается, и в тот момент, когда React выполняет обновление.
Надеюсь, это поможет