Ваш хук useEffect запускается каждый раз, когда изменяется wallets
, и он вызывает fetchConnections
, что вызывает setWallets
, что затем вызывает хук useEffect, потому что он изменился wallets
, и так далее ...
Передайте пустой массив зависимостей для useEffect:
React.useEffect(() => {...}, [])
, которое заставит его работать только при монтировании.
Если вы все еще хотите вызывать fetchConnections
всякий раз, когда wallets
изменяется, вам не следует делать это через ловушку эффекта, потому что вы получите бесконечный l oop, который вы описали. Вместо этого, звоните fetchConnections
вручную каждый раз, когда вы звоните setWallets
. Вы можете сделать функцию, которая сделает это за вас:
const [wallets, setWallets] = useState([]);
const setWalletsAndFetch = (wallets) => {
setWallets(wallets);
fetchConnections(wallets);
}