-
[React] eslint가 의존성 배열에서 에러를 뱉는 이유프론트엔드/React 2024. 9. 6. 14:57728x90
useEffect(() => { if (show) { setShow(true); } }, [show]);
이런 코드가 있다고 가정하자. 그런데 의존성 배열에서 eslint 에러가 발생한다.
그 이유는 무엇일까?
에러가 발생한 부분에서 노출되는 툴팁을 보면React Hook useEffect has a missing dependency: 'setShow'. Either include it or remove the dependency array.eslint~[react-hooks/exhaustive-deps](https://github.com/facebook/react/issues/14920)~
GitHub - facebook/react: The library for web and native user interfaces.
The library for web and native user interfaces. Contribute to facebook/react development by creating an account on GitHub.
github.com
위와 같은 설명이 보인다.setShow를 의존성 배열에 넣지 않았기 때문인데...
setShow는 굳이 변경되는 값도 아닌데 왜 그런가 살펴보니, 단순히 안전성을 보장하기 위해서 라고 한다.
즉, eslint 플러그인이 혹시라도 변경되는 값일 수도 있기 때문에, 안전성을 위해 훅 안에서 사용된 모든 요소를 의존성 배열에 넣으라고 하는 것이다.728x90반응형'프론트엔드 > React' 카테고리의 다른 글
useState로 Map 타입 업데이트하기 (0) 2023.09.14