• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

useEffect의 두 번째 배열인자에 변하는 값을 넣으면 useEffect안의 코드가 재실행되면서 두번째 배열에 넣은 인자값을 계속 추적하게 되나요?

22.04.13 15:12 작성 조회수 151

1

useEffect(() => {

  interval.current = setInterval(changeHand, 1000)

  return () => {

    clearInterval(interval.current)

  }

}, [])


했을때 가위바위보가 제대로 실행이 안되고

useEffect(() => {

  interval.current = setInterval(changeHand, 1000)

  return () => {

    clearInterval(interval.current)

  }

}, [imgCoord])

 

했을때는 가위바위보가 제대로 실행되는 이유가

imgCoord 값이 변경될때 useEffect안에있는 코드들이 다시 실행되어서 인건 이해했습니다.

그렇다면 두 번째 인자 배열에 imgCoord값을 넣으면 

useEffect안의 코드인  interval.current = setInterval(changeHand, 1000)가 재실행되어서 

imgCoord값이 바뀔때 imgCoord값을 추적하게 되니까 imgCoord값이 '바위' -> '가위' -> '보' -> '바위' 이렇게 바뀔 수 있는 건가요?

답변 1

답변을 작성해보세요.

1

네 특히 changeHand가 새롭게 업데이트돼서 그렇습니다.

띄융님의 프로필

띄융

질문자

2022.04.13

이제 이해가 가네요

값을 추적하니까 계속 changeHand함수를 호출하면서 imgCoord 값이
'바위' -> '가위' -> '보' -> '바위' -> 반복
했던 거였군요..

감사합니다~