강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이순곤님의 프로필 이미지
이순곤

작성한 질문수

웹 게임을 만들며 배우는 React

5-2. setInterval과 라이프사이클 연동하기

클로저문제

해결된 질문

작성

·

248

1

클로저 문제 

비동기함수에서 바깥쪽 변수 찾는데

componentDidMount(){

   const {imgCoord} = this.state

   setInterval(){

      

  }

}

내부함수에서 외부함수 변수 참조하는데  딱히 문제 될거 없지 않나요?? 이부분 조금 이해한되는데 조금만 더 설명 부탁드려도 될까요?TT

답변 1

7

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

비동기 함수의 경우 자주 발생하는 문제인데요. imgCoord를 setInterval 바깥에 빼면 imgCoords는 setInterval하기 전 시점으로 고정됩니다. 그래서 setInterval 후에 가위->바위로 바뀌어도 가위로 계속 남아있고, 그걸 참조하게 됩니다.

imgCoord가 setInterval 안에 들어있으면 setInterval하는 순간의 imgCoords를 가져옵니다. 따라서 항상 최신 imgCoords값을 가져올 수 있게 됩니다.

이순곤님의 프로필 이미지
이순곤

작성한 질문수

질문하기