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]);