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로 감싸준 이유가 궁금합니다!