Состояние приложения в реагировать на родной не удаляет слушателя - PullRequest
0 голосов
/ 28 мая 2018

Я добавил слушателя следующим образом (попытался вставить и конструктор, и componentDidMount): AppState.addEventListener ('change', this._handleAppStateChange);

И удалил слушателя следующим образом вМетод componentWillUnmount:

AppState.removeEventListener ('change', this._handleAppStateChange);

И в функции обратного вызова:

  _handleAppStateChange = (nextAppState) => {
    setTimeout(() => {
      alert('App state: ' + this.state.appState);
      alert('Next App state: ' + nextAppState);
    }, 0);
  }

Он предупреждает несколько раз.Это не удаляет слушателя, настроенного один раз.Пожалуйста, дайте мне знать, если кто-то знает об этом?

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Установить состояние - это асинхронный процесс.Поэтому в componentWillUnmount не используйте его, так как компонент размонтируется, и все же для этой сцены setState находится в процессе, вызывая предупреждение.

0 голосов
/ 28 мая 2018

Вы должны удалить слушателя из функции ComponentWillUnmount

componentWillUnmount() {
    AppState.removeEventListener('change', this._handleAppStateChange);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...