Callback-функция, передаваемая как аргумент в setState(), вызывается после того, как состояние было обновлено и компонент закончил перерисовку. Это позволяет тебе выполнить код, который зависит от обновлённого состояния.
Поскольку setState() работает асинхронно, callback даёт возможность убедиться, что твой код выполнится только после того, как изменение состояния завершится и DOM обновится. Без него нельзя гарантировать, что состояние действительно изменилось к моменту выполнения следующей строки кода.
setState({ name: 'John' }, () => {
console.log('Имя было обновлено и компонент перерисовался');
});
Хотя callback полезен, рекомендуется использовать вместо него методы жизненного цикла или хуки для лучшей организации кода:
componentDidUpdate() в классовых компонентах для обработки логики после обновленияuseEffect() в функциональных компонентах для реагирования на изменения состоянияЭти альтернативы выражают намерение яснее и проще в поддержке, чем callback-функции.
Оставляй callback setState() для простых, разовых сценариев, где метод жизненного цикла был бы избыточен. Для сложной логики или множества зависимостей состояния предпочитай современные подходы, описанные выше.
Функция обратного вызова, переданная в setState(), выполняется сразу же после вызова setState(), до того как состояние фактически обновится в компоненте.
Новый — ещё не проверен сообществом
Вы