인프런 커뮤니티 질문&답변
counter, setCounter
작성
·
189
3
안녕하세요! 질문이 있습니다.
연타했을 때 counter와 setCounter가 가리키는 counter가 서로 달라지는 이유가 뭔가요? 처리되는 시간이 연타를 못 따라가서 그런 것인가요..??
답변 1
10
진유림
지식공유자
좋은 의문점이에요~
리액트가 성능을 위해서 여러 state호출을 한꺼번에 묶어서 처리하기 때문입니다.
그래서 기존값을 counter로 참고하고 5번 연타하면 setCounter자체는 5번 불리지만 기존 counter가 아직 업데이트가 안 된 값들을 가져와서 +5가 안되는거예요.
그래서 기존값을 명확히 가져오기 위해선 함수를 통해 받아오셔야 합니다.
이 문서 참고해보셔도 좋을거예요.
https://ko.reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous





