У меня проблема использования 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
массив. данные не загружаются.
Буду признателен за любую рекомендацию о том, как мне следует управлять своей зависимостью.