인프런 커뮤니티 질문&답변

박규석님의 프로필 이미지

작성한 질문수

웹 게임을 만들며 배우는 React

5-5. Hooks와 useEffect

savedCallback.current = callback을 useEffect안에 넣은 이유가 궁금합니다

23.04.27 02:30 작성

·

235

0

function useInterval(callback, delay) {
  const savedCallback = useRef();

  //useEffect(() => {
    savedCallback.current = callback;
  //});

  useEffect(() => {
    function tick() {
      savedCallback.current();
    }

    if (delay !== null) {
      let id = setInterval(tick, delay);
      return () => clearInterval(id);
    }
  }, [delay]);

  return savedCallback.current;
}

deps를 주지 않은 useEffect는 렌더링될때마다 실행되는 것으로 알고 있습니다

useEffect로 감싸주든 안 감싸주든
savedCallback.current = callback 코드는
렌더링될때마다 실행되는데
useEffect로 감싸준 이유가 궁금합니다!


 

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2023. 04. 27. 17:01

https://stackoverflow.com/a/57760937

여기서 댓글을 보시면 좋을 것 같습나다.

useEffect는 렌더링 후에 돌아갑니다.