React Hook useEffect Проблема с массивами - PullRequest
0 голосов
/ 24 апреля 2020

У меня проблема использования useEffect с array в качестве зависимости.

Используемым бэкэндом является Graphql .

Вот мой код для HO C.

const [queryData, setQueryData] = useState([]);  
const queryOrderSets = get(dataHoc, 'query.data.storeOrderSets.items', []);

useEffect(() => {
    setQueryData(queryOrderSets);
  }, [isLoading, queryOrderSets]);

Проблема здесь, когда массив имеет несколько элементов. Реакция дает следующую ошибку

Warning: Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.

Я пытался изменить useEffect следующим образом

useEffect(() => {
    setQueryData(queryOrderSets);
  }, [isLoading, queryOrderSets.length]);

Проблема здесь в том случае, если новый массив имеет такую ​​же длину, как предыдущий queryOrderSet массив. данные не загружаются.

Буду признателен за любую рекомендацию о том, как мне следует управлять своей зависимостью.

...