Пустота roles сама по себе не определяет запуск useEffect: важны зависимости эффекта и стабильность ссылки на массив.
Если массив roles пустой, что будет происходить с useEffect?
Пустота roles сама по себе не определяет запуск useEffect: важны зависимости эффекта и стабильность ссылки на массив.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Пустота roles сама по себе не определяет запуск useEffect: важны зависимости эффекта и стабильность ссылки на массив.
Если зависимости — [roles], новый пустой массив отличается от предыдущего и вызывает повторный эффект. При [] эффект не зависит от roles, а без массива зависимостей выполняется после каждого commit. Без кода нельзя заключить, есть ли цикл обновлений.