У меня ошибка неустановленного компонента.
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. To fix, cancel all subscriptions and asynchronous tasks in %s.%s, a useEffect cleanup function,
in Home (created by Context.Consumer)
Я следовал руководству, чтобы решить его, но общее решение не работает для меня (проверка с помощью переменной "mount"). Я попытался разделить первое использование эффекта, но ничего не работает ... Не могли бы вы помочь мне?
const [espaces, setEspaces] = useState(null);
const [espaceSelected, setEspaceSelected] = useState(null);
const [espaceInSession, setEspaceInSession] = useState(null);
const [redirectToLogin, setRedirectToLogin] = useState(false);
useEffect(() => {
let mounted = true;
getEspaces().then(data => {
if (mounted) {
setEspaces(data);
if (espaces) {
setEspaceSelected(espaces[0].name);
setEspaceInSession(espaces[0].id_espace);
}
}
});
getUserLoged().then(result => {
if (result === -1 && mounted) {
setRedirectToLogin(true); /**The error is located here, when I remove this line all is good.**/
}
});
return () => mounted = false;
}, []);
useEffect(() => {
getEspaces().then(data => setEspaces(data));
}, [createSpaceModalVisible, deleteSpaceModalVisible]);
useEffect(() => {
if (espaceInSession) {
console.log('Update espace id Session storage: ' + espaceInSession.id_espace);
AsyncStorage.setItem('id_espace', '' + espaceInSession.id_espace);
}
}, [espaceInSession]);
return (
<View>
{redirect === true && <Redirect to='/espace' />}
{redirectToLogin === true && <Redirect to='/login' />}
...);