21 / 98
Зачем при обновлении состояния на основе предыдущего значения использовать функциональный вариант setState?
React группирует (batches) обновления состояния и применяет их асинхронно. Если вызвать setState(count + 1) несколько раз подряд, каждый вызов будет использовать одно и то же замкнутое значение count, и в итоге состояние увеличится только на 1. Функциональная форма setState(prev => prev + 1) гарантирует, что каждое обновление работает с актуальным значением, потому что React передаёт в функцию результат предыдущего обновления в очереди.