• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

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

23.04.27 02:30 작성 조회수 188

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

https://stackoverflow.com/a/57760937

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

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