react-native

react-native AppState 正确使用场景

2021-05-06  本文已影响0人  mark666

App States 【react-native 0.63】

0.63版本中官方文档给出的例子是 Hooks方式, 对于组件的方式通常如下:
不过我们使用中会存在以下误区:

import {
  AppState,
} from 'react-native';

AppState.addEventListener('change', (state) => {
    ....
})

componentWillUnmount() {
  AppState.removeEventListener('change')
}

这时候会发现监听依旧存在,移除不掉,这里并不是组件没有销毁,而是使用方式不对

官方的方法如下

removeEventListener()

removeEventListener(type, handler);

正确处理应该是这样

AppState.addEventListener("change", this._handleAppStateChange);


_handleAppStateChange = (state) => {
}

// 需要移除, 或者组件销毁移除
componentWillUnmount() {
   AppState.removeEventListener("change", this._handleAppStateChange);
}

上一篇 下一篇

猜你喜欢

热点阅读