Вступить в клуб →
лёгкаявопросReact и управление состоянием

Хук состояния вызывается внутри условия

function UserCard({ userId, isExpanded }) {
  const [name, setName] = useState('');

  if (isExpanded) {
    const [details, setDetails] = useState(null);
    // загрузка и отображение подробностей
  }

  // ...
}

Что не так с этим кодом?

  • Ошибки нет: хук внутри условия допустим, потому что React привязывает состояние к имени переменной; запрещены только хуки в циклах.
  • Хук вызван условно: React сопоставляет состояния по порядку вызовов, а он меняется между рендерами — будет ошибка или чужое значение.
  • Проблема только в производительности: лишний вызов состояния замедляет рендер раскрытой карточки.
  • В одном компоненте нельзя объявлять два состояния — для этого существует редьюсер.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела