无法对卸载的组件执行 React 状态更新。使用 Firebase

时间:2021-02-28 13:29:35

标签: javascript react-native firebase-realtime-database use-effect

以下是使用 ReactNative 代码的片段:

const assetRef = firebase.database().ref...;

const residualRef = firebase.database().ref...;


useEffect(() => {
  const assetsHook = assetRef
    .on('value', (snapshot) => {
                const newOwner = [];
                const newAssets = [];
                const assets = snapshot.val();  
               
                snapshot.forEach((childSnapshot) => {
                  var childKey = childSnapshot.key;
                  var childData = childSnapshot.val();
                  newOwner.push(childKey);
                  newAssets.push(childData);
                 
                });
                //console.log(owner.length)
                setOwner(newOwner);
                setAssets(newAssets);
                
            },
            error => {
                console.log(error)
            }
        );
        
        return () => {
          assetsHook()
        }
 
}, []);

useEffect(() => {
  const residualHook = residualRef
  .on('value', (snapshot) => {
    const res = [];
    snapshot.forEach((childSnapshot) => {
      res.push(childSnapshot);
    });
    //console.log(owner.length)
    setResidual(res);   
  },
  error => {
    console.log(error)
  }
  );
  return () => {
    residualHook()
  }

}, []);

有没有办法防止错误信息出现?我已经尝试了所有我认为我从文档中理解的内容。我也尝试过使用一个很长的 useEffect 函数,但它仍然出现错误。

0 个答案:

没有答案