首页 > 解决方案 > 我收到此错误:无法对未安装的组件执行 React 状态更新。但我不知道该怎么办

问题描述

这是我的 useEffect 函数:

    async function getURL() {
      if (Produtos !== null) {
        const prod = [];
        for (const i of Produtos) {
          const ref = firebase.storage().ref(i.nome + '/0.jpg');
          const uri = await ref.getDownloadURL();
          prod.push({
            uri: uri,
          });
        }
        setURL(prod);
      }
    }
    const cleanUp = firestore()
      .collection('Produtos')
      .onSnapshot((querySnapshot) => {
        const Prod = [];
        querySnapshot.forEach((documentSnapshot) => {
          Prod.push({
            ...documentSnapshot.data(),
            key: documentSnapshot.id,
          });
        });
        setProdutos(Prod);
        getURL();
      },);
      return () => {cleanUp();};
  }, [Produtos]);

当我离开此功能所在的页面时,我收到此错误:

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

但我已经卸载了这个功能。

标签: reactjs

解决方案


推荐阅读