더북(TheBook)

7.2.6 getSnapshotBeforeUpdate 메서드

 

이것은 리액트 v16.3 이후 만든 메서드입니다. 이 메서드는 render 메서드를 호출한 후 DOM에 변화를 반영하기 바로 직전에 호출하는 메서드입니다. 여기에서 반환하는 값은 componentDidUpdate에서 세 번째 파라미터인 snapshot 값으로 전달받을 수 있는데요. 주로 업데이트하기 직전의 값을 참고할 일이 있을 때 활용됩니다(예: 스크롤바 위치 유지).

getSnapshotBeforeUpdate(prevProps, prevState) {
    if(prevState.array !== this.state.array) {
      const { scrollTop, scrollHeight } = this.list
      return { scrollTop, scrollHeight };
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.