Con React 16.8.6 (era buono sulla versione precedente 16.8.3), ottengo questo errore quando provo a prevenire un ciclo infinito su una richiesta di recupero
./src/components/BusinessesList.js
Line 51: React Hook useEffect has a missing dependency: 'fetchBusinesses'.
Either include it or remove the dependency array react-hooks/exhaustive-deps
Non sono stato in grado di trovare una soluzione che arresti il ciclo infinito. Voglio stare lontano dall'uso useReducer()
. Ho trovato questa discussione https://github.com/facebook/react/issues/14920 in cui una possibile soluzione è You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
che non sono fiducioso in quello che sto facendo, quindi non ho ancora provato a implementarlo.
Ho questa configurazione corrente React hook use L'effetto funziona in modo continuo per sempre / ciclo infinito e l'unico commento riguarda il useCallback()
quale non ho familiarità.
Come sto attualmente utilizzando useEffect()
(che voglio eseguire solo una volta all'inizio simile a componentDidMount()
)
useEffect(() => {
fetchBusinesses();
}, []);
const fetchBusinesses = () => {
return fetch("theURL", {method: "GET"}
)
.then(res => normalizeResponseErrors(res))
.then(res => {
return res.json();
})
.then(rcvdBusinesses => {
// some stuff
})
.catch(err => {
// some error handling
});
};
useCallback()
. Quindi per esempio:const fetchBusinesses= useCallback(() => { ... }, [...])
euseEffect()
sarebbe simile al seguente:useEffect(() => { fetchBusinesses(); }, [fetchBusinesses]);