Dengan Bereaksi 16.8.6 (itu bagus pada versi sebelumnya 16.8.3), saya mendapatkan kesalahan ini ketika saya mencoba untuk mencegah loop tak terbatas pada permintaan pengambilan
./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
Saya tidak dapat menemukan solusi yang menghentikan infinite loop. Saya ingin tinggal jauh dari menggunakan useReducer()
. Saya memang menemukan diskusi ini https://github.com/facebook/react/issues/14920 di mana solusi yang memungkinkan adalah You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
saya tidak yakin dengan apa yang saya lakukan jadi saya belum mencoba mengimplementasikannya dulu.
Saya memiliki pengaturan saat ini React hook useEffect berjalan terus menerus selamanya / infinite loop dan satu-satunya komentar adalah tentang useCallback()
yang saya tidak kenal.
Bagaimana saya saat ini menggunakan useEffect()
(yang saya hanya ingin menjalankan sekali di awal mirip dengan 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()
. Jadi misalnya:const fetchBusinesses= useCallback(() => { ... }, [...])
danuseEffect()
akan terlihat seperti ini:useEffect(() => { fetchBusinesses(); }, [fetchBusinesses]);