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