javascript - 检索数据时重新渲染组件
问题描述
当我从firebase获取数据时,请求仍在运行并且数据仍在控制台中运行我不知道为什么它没有停止我使用清理功能,中止控制器但它在这里不起作用是我的代码
我希望你能帮帮我
const [fetchedPhoto, setFetchedPhoto]= useState({
imagUrl:[]
})
const retrieveImg= useCallback(async() => {
try{
const url=[]
const data= await fetch('https://naif-65aa6.firebaseio.com/test-project.json',{signal:controller.signal})
const response= await data.json()
for(const key in response){
url.push({
id: key,
name: response[key].name,
phone: response[key].phone
})
}
setFetchedPhoto(prevState=>({
...prevState,
imagUrl: prevState.imagUrl.concat(url)
}))
console.log(fetchedPhoto.imagUrl);
} catch(err) {
console.log(err);
}
},[fetchedPhoto])
useEffect(()=>{
retrieveImg()
return()=>controller.abort()
},[fetchedPhoto])
解决方案
推荐阅读
- node.js - Firebase 实时数据库按日期子节点过滤并更新
- zendesk-api - Zendesk OAuth“无效的授权请求”
- python-3.x - 我无法检索 Table_Service 的 query_entities 的属性
- javascript - 如何在编写序列化 json 时防止删除空格
- objective-c - NSPredicate predicateWithFormat @"ANY relationship.attribute == %@" 抛出异常
- scala - 如何使用 Spark Windowing 根据条件查找数据帧的第一行和第 n 行之间的差异
- java - 用于匹配 XML 节点的正则表达式
- angular - 如何避免在表格标题内单击会触发单击整个表格标题
- java - 如何实现参数相同但签名不同的方法
- amazon-s3 - 如何将我的文件从 s3 加载到 powerBi?