@Danoneko

Частый ре-рендеринг, где ошибаюсь?

Подскажите пожалуйста где ошибаюсь?

Структура такая
const InnerContainer = ({status, ...props}) => {
   const [blocks, setBlocks] = useState(bigData); 
   function applyStatus(i) {
      setBlocks(i); // строка после которой вылезает ошибка
    }
   applyStatus(status); // массив типа (n) [{…}, {…}, {…}, ... {…}]

  function sorting(){
      if(...){
        if(...){....setBlocks(sort)}else{setBlocks(sort)}
     }else{
        if(...){....setBlocks(sort)}else{setBlocks(sort)}
     }
   }

   const InnerBlock = () => {
     return blocks.filter(...).map(...)
   }
return(
{sorting} // где-то внутри пару раз вызывается 
<InnerBlock />
)
}


Функция сортировки(sorting) и InnerBlock удачно работали, пока не добавил еще одну setBlocks(i) в applyStatus. Вылезают ошибки ре-рендеринга
Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.

Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.


Как исправить такую ошибку?
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 1
Какие блоки в реакте? Можно более четко написать, где и в каком компоненте находится логика? Какой компонент родительский, какой дочерний, или всё в одном компоненте каком-то происходит и эти куски кода из одного компонента все?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы