useEffect의 dependancy array 경고를 지우는 법

eeensu·2023년 12월 23일
0

React 실무

목록 보기
19/22
post-thumbnail

useEffect() 함수의 dependancy array (의존성 배열)에 값을 주입하면, 해당 배열 중의 값이 하나라도 변경되었다면 useEffect() 내의 콜백 함수를 실행한다. eslint를 설정하면 useEffect() 의 콜백함수에서 사용된 값을 dependancy array에 주입하지 않으면 경고를 일으킨다.

유용하지만, 때로는 useEffect()에 값을 주입하지 않아도 되거나, 주입하면 안되는 상황도 있다. 이러할 때
경고문을 없애주는 주석문구가 있다.

useEffect(() => {
		
  // 아래는 예시 함수
    const controller = new AbortController();

    const fetchData = async () => {
      try {
        const res = await axiosInstance[method.toLowerCase()](url, {
          ...requestConfig,
          signal: controller.signal,
        });

        console.log(res);
        setResponse(res.data);
      } catch (error) {
        console.log(error);
        error instanceof Error && setError(error.message);
      } finally {
        setLoading(false);
      }
    };

    fetchData();

    return () => controller.abort();
        
        // eslint-disable-next-line		<-- 이 문구를 추가해주면 경고문이 사라진다.
    }, [reload]);

참고로 해당 주석문은, useEffect() 경고 뿐만 아니라 그 어떤 경고문에도 적용이 가능하므로 유용한 기능이다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글