왜 시간이 더 빠르게 줄지 않을까?

그린그레이프·2020년 6월 12일
0
useEffect(() => {
    if (secondsLeft > 0) {
      setTimeout(() => {
        setSecondsLeft(secondsLeft - 1);
      }, 1000);
    }
  });

useEffect 는 component update, mount 시점에 발동한다.
setTimeout 으로 인한 상태변화로 발동시키는 것 이외에도
현재 프로젝트에서는 버튼 클릭이나 다양한 요소들 때문에 수십번은 발동한다.

왜, 10초 동안 30번 발동하는데 시간은 일정하게 1초당 1씩 줄어드는 걸까?

해답

10초 에서 9초 까지 호출되는건 정확히 setSecondsLeft(9) 다.
즉, 같은 일을 여러번 하고 있다.

profile
제대로 걷는 한걸음이 곧 백걸음이다

0개의 댓글