React native Can';t在未安装的组件上执行React状态更新。(React本机错误)

React native Can';t在未安装的组件上执行React状态更新。(React本机错误),react-native,React Native,我无法卸载此功能。请帮助,请告诉我如何卸载正在使用的功能 警告:无法执行反应状态 更新未安装的组件。这是一个no-op,但它表示应用程序中存在内存泄漏。要修复此问题,请取消useEffect清理函数中的所有订阅和异步任务 checkLoginState(); },[]); const checkLoginState = () =>{ if(user.length > 0 ){ fetch(`${Config.SE

我无法卸载此功能。请帮助,请告诉我如何卸载正在使用的功能

警告:无法执行反应状态 更新未安装的组件。这是一个no-op,但它表示应用程序中存在内存泄漏。要修复此问题,请取消useEffect清理函数中的所有订阅和异步任务

        checkLoginState();
    },[]);

    const checkLoginState = () =>{

        if(user.length > 0 ){
          fetch(`${Config.SERVER_KEY}/api/users/profile`, {
            method: 'GET',
            headers: {
                Accept: 'application/json',
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${user}`
            }
          }).then((response) => response.json())
            .then((json) => {
              console.log(json)
                if(json.success === true){
                  setUserData(json.data)
                  setData(json)
                  setUser(true)
                  setLoading(false)
                } else if (json.msg === 'Token has expired'){
                  refresh();
                } else {
                  console.log(json)
                  alert('Failed to access data')
                  navigation.navigate('main')
                }
            })
            .catch((error) => {
               console.log(error)
            });
          
        } else {
          setLoading(false)
        }

    }```

请包括完整的代码和正确的格式。我看不到
useffect
钩子。在卸载组件后,当您校准
setState
时,通常会出现该错误。在您的情况下,组件似乎是在
获取
调用仍在进行时卸载的(可能是您导航回来的),当您得到服务器响应时,React尝试调用
setUserData(json.data)
setData(json)
,这将解释您的错误。您可以在
然后
块中添加一个检查,并且仅在安装组件时执行该代码,或者您也可以在
组件中取消
获取
请求将卸载
当组件在获取完成之前卸载时,会发生这种情况。关于如何处理这个问题,有很多答案和文章。本质上,在useEffect中需要一个类似isSubscribed的布尔值,并且如果isSubscribed仍然为真,则只调用useEffect中的setState函数。这是否回答了您的问题?