【发布时间】:2022-11-24 19:59:48
【问题描述】:
以下代码用作 RN 应用程序中的离线监视器 - 它基本上用于在连接断开时显示警告。
export default function InternetCheck() {
const [isConnected, setIsConnected] = useState(false);
const [mounted, setMounted] = useState(false);
useEffect(() => {
//Intial status
NetInfo.fetch().then(state => {
if (state.isInternetReachable == false) {
setIsConnected(state.isInternetReachable);
}
});
//Internet connection listener
NetInfo.addEventListener(state => {
setIsConnected(state.isInternetReachable);
});
}, []);
我在控制台中收到以下错误 -
警告:无法对未安装的组件执行 React 状态更新。 这是一个空操作,但它表明您的应用程序中存在内存泄漏。 要修复,取消 useEffect 中的所有订阅和异步任务 清理功能。
谁能解释一下如何在这种情况下应用清理功能?我已经阅读了其他各种问题,但无法理解逻辑方法。
【问题讨论】:
-
看起来像是一个简单的清理,根据设计,它是您从此
useEffect返回的函数(您的函数不返回任何内容)。在返回的函数中你应该...removeEventListener。
标签: reactjs react-native