본문 바로가기
프론트엔드/React

setState 함수는 Dependency list에 넣어줘야 할까?

by SeungYn 2024. 1. 17.

setState 함수는 Dependency list에 넣어줘야 할까?

useEffect나 useCallback, useMemo 등 각 훅들에 Dependency list에 set함수를 넣어줘야 하는지 갑자기 궁금해짐.

NextJS로 진행하면 아래 두 개의 코드처럼 사용해도 린트가 경고를 안 해준다. 그래서 찾아봤더니

const fn = useCallback(() => {
    setState(true);
  }, [setState]);
const fn = useCallback(() => {
    setState(true);
  }, []);

 

공식문서의 대답

 

리액트 구버전 공식문서에서 setState는 함수 식별자 ID가 안전하고 리렌더링 되어도 변하지 않는다고 한다.

 

리액트 구버전 공식문서

https://legacy.reactjs.org/docs/hooks-reference.html#usestate

 

Hooks API Reference – React

A JavaScript library for building user interfaces

legacy.reactjs.org

 

결론

setState 함수는 리렌더링이 되어도 변하질 않으니 Dependency list에 안 넣어줘도 된다.