Sobes.tech
Назад к вопросам
Middle+
2

Зачем в setCount передавать функцию (c => c + 1) вместо просто setCount(tick + 1)?

Компании, где спрашивали
VK Tech

Ответ от нейросети

sobes.tech AI

Передача функции в setCount, например setCount(c => c + 1), используется для корректного обновления состояния, когда новое значение зависит от предыдущего. Это важно, потому что React может группировать несколько обновлений состояния и выполнять их асинхронно. Если написать setCount(tick + 1), где tick — это текущее значение, то при нескольких быстрых вызовах обновления могут потеряться, так как tick не обновится мгновенно.

Пример:

// Правильно:
setCount(c => c + 1);

// Может привести к ошибкам при быстром вызове:
setCount(count + 1);

Таким образом, функция гарантирует, что обновление будет основано на актуальном значении состояния.