더북(TheBook)

4.2.3 상태 갱신하기

클래스 메서드인 this.setState(data, callback)를 사용하면 상태를 변경할 수 있다. 이 메서드를 실행하면 React는 전달하는 data를 현재 상태에 병합하고 render()를 호출한다. 이후에 React가 callback 함수를 실행한다.

setState()에 콜백함수를 사용할 수 있다는 점은 중요하다. setState()비동기로 작동하기 때문이다. 새로운 상태에 의존하는 경우, 콜백함수를 사용해야 새로운 상태가 적용된 후에 필요한 작업을 수행할 수 있다.

setState()가 완료되길 기다리지 않고 새로운 상태에 의존하는 작업을 수행하는 것은 비동기(asynchronous) 작업을 동기(synchronous)처럼 다루는 것이다. 이 경우 갱신될 새로운 상태 값에 의존하는 코드를 작성하면 버그가 생길 수 있는데, 상태 객체가 이전 값을 가진 이전의 상태 객체로 남아있기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.