首页 > 解决方案 > 检索数据时重新渲染组件

问题描述

当我从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])

标签: javascriptreactjsreact-native

解决方案


推荐阅读