React 16.8.6 (이전 버전 16.8.3에서는 좋았 음)으로 가져 오기 요청에서 무한 루프를 방지하려고하면이 오류가 발생합니다.
./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
무한 루프를 멈추는 해결책을 찾지 못했습니다. 사용하지 않고 싶습니다 useReducer()
. 가능한 해결책이 내가하는 일에 확신이없는 https://github.com/facebook/react/issues/14920 이 토론을 찾았습니다. You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
그래서 아직 구현을 시도하지 않았습니다.
나는이 현재 설정을 가지고 있습니다 .React hook useEffect는 영원히 / 무한 루프를 계속 실행 하며 유일한 의견은 useCallback()
내가 익숙하지 않은 것입니다.
현재 사용중인 방법 useEffect()
(와 비슷한 처음에 한 번만 실행하고 싶습니다 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()
입니다. 그래서 예를 들면 다음과 같습니다const fetchBusinesses= useCallback(() => { ... }, [...])
과는useEffect()
같을 것이다 :useEffect(() => { fetchBusinesses(); }, [fetchBusinesses]);