Код после выполненного return не запускается, а обычные hooks должны вызываться в стабильном порядке на каждом render, до условных ранних выходов.
Почему React требует, чтобы хуки вызывались до return, а не после?
Код после выполненного return не запускается, а обычные hooks должны вызываться в стабильном порядке на каждом render, до условных ранних выходов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Код после выполненного return не запускается, а обычные hooks должны вызываться в стабильном порядке на каждом render, до условных ранних выходов.
React сопоставляет состояние с порядком hook-вызовов. Если один render пропустит useState/useEffect из-за условия, соответствие нарушится. Поэтому условие помещают внутрь эффекта или меняют структуру компонентов. Не переносите это правило механически на специальные API с отдельно описанными исключениями.