React 16.8.6 ile (önceki sürüm 16.8.3'te iyiydi), bir getirme isteğinde sonsuz bir döngüyü önlemeye çalıştığımda bu hatayı alıyorum
./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
Sonsuz döngüyü durduran bir çözüm bulamadım. Kullanmaktan uzak durmak istiyorum useReducer()
. Bu tartışmayı buldum https://github.com/facebook/react/issues/14920 nerede olası bir çözüm You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
yaptığımdan emin değilim, bu yüzden henüz uygulamayı denemedim.
Bu geçerli kurulum var React hook useEffect sürekli sonsuza kadar çalışır / sonsuz döngü ve tek yorum hakkında useCallback()
değil aşina değilim.
Şu anda nasıl kullanıyorum useEffect()
(başlangıçta sadece bir kez çalıştırmak istiyorum 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()
. Yani örneğin:const fetchBusinesses= useCallback(() => { ... }, [...])
ve şuuseEffect()
şekilde görünecektir:useEffect(() => { fetchBusinesses(); }, [fetchBusinesses]);