Este artículo ha sido probado por especialistas así garantizamos la veracidad de nuestro post.
Solución:
Con useEffect puede devolver una función que se ejecutará en la limpieza. Entonces, en tu caso, querrás algo como esto:
useEffect(() =>
let unmounted = false;
setPageLoading(true);
props
.dispatch(fetchCourses())
.then(() =>
if (!unmounted)
setPageLoading(false);
)
.catch((error: string) =>
if (!unmounted)
toast.error(error);
setPageLoading(false);
);
return () => unmounted = true ;
, []);
EDITAR: si necesita tener una llamada que se inicie fuera de useEffect, aún deberá verificar una variable no montada para saber si debe omitir la llamada a setState. Esa variable desmontada se establecerá mediante un efecto de uso, pero ahora debe superar algunos obstáculos para que la variable sea accesible fuera del efecto.
const Example = (props) =>
const unmounted = useRef(false);
useEffect(() =>
return () => unmounted.current = true
, []);
const setFilter = () =>
// ...
props.dispatch(fetchCourses()).then(() =>
if (!unmounted.current)
setLoading(false);
)
// ...
return (
);
Calificaciones y reseñas
Puedes añadir valor a nuestra información dando tu experiencia en las interpretaciones.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)