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()
}, [])