вызовов хуков должно быть постоянным, но я не увидел (если там есть ткните меня носом, пожалуйста) почему они вообще должны быть вызваны? Какой криминал в этом коде:
const Asd => ({items /* items - массив */}) => {
if (items.length == 0) return <Loader/>
// далее идёт вызов хуков
useState()
useEffect(…)
return <SomeChildComponent/>
}
Проблема в том: 1) при первом вызове происходит инициализация всех хуков(стейты, рефы и т.д.) 2) Не вызов всех хуков не документирован. И даже если сейчас работает, то в будущих версиях реакта всё сломать может.
Обсуждают сегодня