if (movie === undefined) return; 를 useEffect 호출보다 먼저 사용하게 된다면,
movie에 값에 따라 useEffect가 호출되고 안되고 버전이 두개로 나뉘므로, 리액트에서 인식 불가 에러
if (movie === undefined) return; // useEffect 호출 전 해당 함수 종료
useEffect(() => {
setIsLoading(true);
const fetchMovieDetail = async () => {
const result = await movieRepository.fetchMovieDetail(movie.imdbID);
setIsLoading(false);
};
fetchMovieDetail();
}, [movie]);
해당 분기처리는 위젯 내에서 처리하거나, useEffect를 호출 후 종료하는 형식으로 변경해야한다.
useEffect(() => {
if (movie === undefined) return;
setIsLoading(true);
const fetchMovieDetail = async () => {
const result = await movieRepository.fetchMovieDetail(movie.imdbID);
setIsLoading(false);
};
fetchMovieDetail();
}, [movie]);
'React > know' 카테고리의 다른 글
onClick을 사용하는 3가지 방법 (0) | 2024.11.26 |
---|---|
캡쳐링 버블링 (0) | 2024.11.25 |
비구조할당으로 argument 처리하기 (0) | 2024.11.21 |
Render Props 패턴 (0) | 2024.11.20 |
성능 최적화 : React Dev Tool, React.lazy (2) | 2024.11.19 |