Если roles равно undefined и компонент перерендерился — что будет происходить с useEffect?

Если зависимости равны [roles] и roles остаётся undefined, повторный рендер сам по себе не перезапустит эффект.

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

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

Если зависимости равны [roles] и roles остаётся undefined, повторный рендер сам по себе не перезапустит эффект.

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

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

Если зависимости равны [roles] и roles остаётся undefined, повторный рендер сам по себе не перезапустит эффект.

React сравнивает зависимости через Object.is, а undefined равен предыдущему undefined. Без массива зависимостей эффект запускается после каждого commit; с пустым массивом не зависит от roles. Размонтирование, повторное монтирование и проверки Strict Mode — отдельные случаи. Без кода нельзя выбрать один вариант безусловно.

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

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

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

Подробнее