Нам нужно делать запрос только когда у нас есть roles. Как это реализовать?

Условие ставят внутри эффекта или механизма загрузки, а не вокруг вызова React-хука; сначала нужно определить, что значит «roles есть».

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

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

Условие ставят внутри эффекта или механизма загрузки, а не вокруг вызова React-хука; сначала нужно определить, что значит «roles есть».

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

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

Условие ставят внутри эффекта или механизма загрузки, а не вокруг вызова React-хука; сначала нужно определить, что значит «roles есть».

Например, внутри useEffect можно сделать if (!roles?.length) return;, если запрос требует непустого массива. Если [] означает успешно загруженные пустые права, проверяют отдельно состояние загрузки. Зависимости и отмена устаревшего запроса обязательны; наличие роли не заменяет проверку на сервере.

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

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

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

Подробнее