> Зачем в setState передавать callback вместо значения (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Сфера
Стек: React
> Пример ответа
В React setState может принимать как новое значение, так и функцию-callback. Передача callback необходима, когда новое состояние зависит от предыдущего. Это гарантирует, что вы работаете с актуальным значением состояния, даже если несколько вызовов setState происходят асинхронно (например, в одном обработчике событий или в useEffect). Без callback возможны баги из-за того, что React может объединять (batch) обновления состояния.
Пример:
TYPESCRIPT// Проблема: значение может быть устаревшимconst [count, setCount] = useState(0);setCount(count + 1); // если вызвать дважды, count может не обновиться// Решение: используем callbacksetCount(prevCount => prevCount + 1); // всегда работает с актуальным значением
Callback также полезен при работе с замыканиями, когда состояние читается внутри асинхронной функции или эффекта, чтобы избежать stale closure.
> Похожие задачи по frontend
Можно ли создать второй интерфейс на основе первого, включающий все его поля, и как это сделать в TypeScript?
Как работает перегрузка функций в TypeScript
Как преобразовать объект arguments в массив в JavaScript
Почему нельзя использовать typeof B как тип напрямую в TypeScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью