Что произойдёт, если в useEffect без массива зависимостей вызвать setState?

Эффект без массива зависимостей выполняется после каждого commit; если он каждый раз меняет state, получится цикл обновлений.

Короткий ответ

Что ответить на собеседовании

Эффект без массива зависимостей выполняется после каждого commit; если он каждый раз меняет state, получится цикл обновлений.

Подробный разбор

Ответ с пояснениями

Условие

Что произойдёт, если в useEffect без массива зависимостей вызвать setState?

Ответ

Эффект без массива зависимостей выполняется после каждого commit; если он каждый раз меняет state, получится цикл обновлений.

Например, установка нового объекта или увеличение счётчика будет провоцировать следующий render и эффект. Установка того же примитива может быть отброшена React, поэтому бесконечный цикл не обязателен при любом setter. Исправляют причину синхронизации и зависимости, а не прячут предупреждение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее