Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
¿Por qué usaríamos Callback en useIsMounted hook para devolver la referencia del hook?

En el siguiente ejemplo tomado del sitio web usehooks-ts

 import { useCallback, useEffect, useRef } from 'react' function useIsMounted() { const isMounted = useRef(false) useEffect(() => { isMounted.current = true return () => { isMounted.current = false } }, []) return useCallback(() => isMounted.current, []) } export default useIsMounted

¿Por qué devolvemos isMounted.current como devolución de llamada y no devolvemos solo el valor isMounted.current ?

¿Cuál sería un ejemplo en el que devolver solo isMounted.current como valor sería una mala idea?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede probar las diferentes implementaciones usted mismo para ver qué sucede:

 const UnmountingChild = ({ unmount }) => { const { isMounted, isMountedNC } = useIsMounted(); useEffect(() => { console.log('IS MOUNTED BEFORE FETCH', isMounted()); // true console.log('IS MOUNTED NO CALLBACK BEFORE FETCH', isMountedNC.current); //true fetch('https://jsonplaceholder.typicode.com/todos/1').then((d) => { console.log('IS MOUNTED', isMounted()); //false console.log('IS MOUNTED NO CALLBACK', isMountedNC.current); //false }); unmount(); // <-- This triggers the unmount of the component }, []); return <>Child</>; }; function useIsMounted() { const isMounted = useRef(false); useEffect(() => { isMounted.current = true; return () => (isMounted.current = false); }, []); return { isMounted: useCallback(() => isMounted.current, []), isMountedNC: isMounted, }; }

Consulta la demostración AQUÍ

El uso de una devolución de llamada es útil porque le permite leer directamente el valor de la ref con ref.current cuando sea necesario, simplemente llamando a isMounted() , si desea devolver directamente la ref , solo tiene que asegurarse de devolver todo el ref y no solo ref.current porque si pasa ref.current pasará solo el valor real y no el mutable ref object , por lo tanto, su valor siempre se mantendrá en false . Devolver la ref lo obliga a leer cada vez que la propiedad .current , y eso no es muy bueno, y podría engañar a las personas que usan el gancho sin conocer la implementación interna, mientras que llamar a isMounted() es más agradable de leer, usar y evitar problemas de uso.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda