reactjs - 我收到此错误:无法对未安装的组件执行 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 清理函数中取消所有订阅和异步任务。
但我已经卸载了这个功能。
解决方案
推荐阅读
- c# - 以编程方式捕获 Google Map 的屏幕截图
- java - 尝试使用外部库从 cmd 行构建/运行 java 程序
- javascript - 在asp.net中关闭弹出窗口后运行函数
- javascript - 如何将 Ajax 响应转换为字符串以与 JS 字符串进行比较
- java - 为什么我有这个错误?ArrayIndexOutOfBoundsException
- php - 在特定句子之间插入标签,保持原始大小写
- javascript - 在一个 div 中编写 HTML 标签,在另一个 div 中查看所见即所得
- c++11 - 管理单个内存块的分配器
- c# - Aspose 在 MS Powerpoint 中查找给定单词
- java - 如何在android中每24小时运行一次代码