LearnApplyShare

[react] 컴포넌트의 mount 여부 체크

November 02, 2018 - [react]

아직 mount 되지 않은 혹은 unmount 된 컴포넌트에 forceUpdatesetState 를 수행하려고 하면 아래와 같은 오류가 발생한다

Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
    in List (created by App)

setStateforceUpdate 전에 해당 컴포넌트의 mount 여부를 체크할 수 있으면 좋겠다. 어떻게 해야할까. 관련 내용을 좀 찾아봤는데 아래와 같은 방법이 있었다.

componentDidMount() {
  this._ismounted = true;
}

componentWillUnmount() {
   this._ismounted = false;
}

과거 isMounted() 함수가 있었는데.. 메모릭 문제가 있어서 공식적으로 deprectated 되었다고 한다.


Ref.