首页 > 解决方案 > React Native:干净的UseEffect

问题描述

我面临这个问题

警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请在 useEffect 清理函数中取消所有订阅和异步任务。

  useEffect(() => {

    firebase.auth().onAuthStateChanged((user) => {
      if (user !== null) {
        return firebase
          .firestore()
          .collection("users")
          .doc(user.uid)
          .get()
          .then((documentSnapshot) => {
            if (documentSnapshot.exists) {
              setUserData(documentSnapshot.data());
              setisloadingComplet(true);
            }
          });
      }
    });

    
  }, []);

每当用户更新他的信息时。在我刷新应用程序之前它不会立即更新。它向我抛出了上面的警告

标签: reactjsreact-nativereact-reduxreact-routerexpo

解决方案


感谢你们 。我解决了这个问题。问题是我从个人资料和主屏幕获取数据。我所做的是删除从配置文件屏幕获取数据。相反,我仅从主屏幕获取用户数据,然后通过导航将其传递到配置文件屏幕。


推荐阅读