카운트다운 훅을 만들고 있는데, setInterval 안에서 찍는 count 값이 항상 0만 찍힙니다.
function useCountdown() {
const [count, setCount] = useState(0);
useEffect(() => {
const id = setInterval(() => {
console.log(count); // 항상 0
setCount(c => c + 1);
}, 1000);
return () => clearInterval(id);
}, []);
return count;
}
setCount(c => c + 1)로 업데이트는 정상 동작하는데, 콘솔에 찍는 count만 0 그대로예요. deps에 count를 넣으면 interval이 매초 재생성돼서 원래 의도가 아니고요.
deps 안 건드리고 최신값 참조하는 방법이 있나요?
댓글 0