Mit React 16.8.6 (es war in der vorherigen Version 16.8.3 gut) erhalte ich diesen Fehler, wenn ich versuche, eine Endlosschleife bei einer Abrufanforderung zu verhindern
./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
Ich konnte keine Lösung finden, die die Endlosschleife stoppt. Ich möchte mich von der Verwendung fernhalten useReducer()
. Ich habe diese Diskussion unter https://github.com/facebook/react/issues/14920 gefunden, bei der eine mögliche Lösung darin besteht, dass You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
ich nicht sicher bin, was ich tue. Daher habe ich noch nicht versucht, sie zu implementieren.
Ich habe dieses aktuelle Setup. React hook useEffect läuft ununterbrochen für immer / Endlosschleife und der einzige Kommentar ist, mit useCallback()
dem ich nicht vertraut bin.
Wie ich aktuell benutze useEffect()
(was ich am Anfang nur einmal ausführen möchte, ähnlich wie 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()
. Also zum Beispiel:const fetchBusinesses= useCallback(() => { ... }, [...])
und dasuseEffect()
würde so aussehen:useEffect(() => { fetchBusinesses(); }, [fetchBusinesses]);