【发布时间】:2021-08-09 13:24:49
【问题描述】:
警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请在 useEffect 清理函数中取消所有订阅和异步任务。
当我尝试从 firebase 获取一些数据时收到此警告,该应用可以运行,但我只是收到警告,这是我的代码:
const [MeasuresList, setMeasuresList] = useState()
useEffect(()=> {
getData()
})
function getData(){
getMeasures(MeasuresRetrived)
}
function MeasuresRetrived(MeasuresList){
setMeasuresList(MeasuresList)
}
return (
<View style={styles.content}>
<Text title semi center>{route.params.muscle}</Text>
<View style={{height: 20 }}/>
<FlatList style={styles.flatList}
data = {MeasuresList}
keyExtractor={(item) => item.id}
renderItem={({ item }) =>
<ExList list={item}/>
}
/>
</View>
这是我的 getMeasures:
export async function getMeasures(measureRetrived){
var measuresList = []
var snapshot = await firebase
.firestore()
.collection("Measures")
.get()
snapshot.forEach((doc) => {
const measureDoc = doc.data()
measureDoc.id = doc.id
measuresList.push(measureDoc)
})
measureRetrived(measuresList)
}
我该如何解决?
【问题讨论】:
-
你的
useEffect没有依赖数组,你应该从那里开始。