React Nat 警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏
React Nat Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application
警告:无法对未安装的组件执行 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
挂钩,在本例中为 []
的空依赖项。
useEffect(()=> {
getData()
}, [])
警告:无法对未安装的组件执行 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
挂钩,在本例中为 []
的空依赖项。
useEffect(()=> {
getData()
}, [])