> Зачем использовать setState с колбэком в React? (React, TypeScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Альфа-банк

Стек: React, TypeScript

> Пример ответа

Использование setState с колбэком необходимо, когда новое состояние зависит от предыдущего. Это гарантирует, что вы работаете с актуальным значением, избегая проблем асинхронности React. Например, при инкременте счетчика:

TYPESCRIPT
// ❌ Проблема: state может быть устаревшим
this.setState({ count: this.state.count + 1 });
// ✅ Решение: колбэк гарантирует актуальность
this.setState((prevState) => ({ count: prevState.count + 1 }));

В функциональных компонентах с хуками аналогичный эффект достигается через функциональную форму setState:

TYPESCRIPT
const [count, setCount] = useState(0);
setCount((prevCount) => prevCount + 1);

Колбэк также полезен для выполнения действий после обновления состояния (в классовых компонентах):

TYPESCRIPT
this.setState({ name: 'John' }, () => {
console.log('Состояние обновлено:', this.state.name);
});

В TypeScript это особенно важно для типизации: колбэк получает точный тип предыдущего состояния, предотвращая ошибки.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью