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

152
Vistas
Pasar variable que cambia con el tiempo a un oyente

Problema: un oyente usa el valor anterior de una variable en una devolución de llamada.

Estoy tratando de encontrar una forma adecuada de pasar una variable a una devolución de llamada. La devolución de llamada debe usar un valor relevante de la variable.

 const [title, setTitle] = useState(''); useEffect(() => { notificationListener.current = Notifications.addNotificationReceivedListener(() => { foo(title); }); return () => {/* Removing Listener */}; }, [])

El title muta con el tiempo y foo() debería recibir un valor de title relevante.

Soluciones que se me ocurrieron hasta ahora:

  1. Mantenga el valor en useRef() en lugar de useState()
  2. Destruir y volver a crear el oyente al cambiar el title

Pero ninguno de ellos parece un enfoque óptimo. Por favor ayuda.

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

0

En lugar de crear una función anónima, puede crear una función para el oyente y envolverla en useCallback

 const callbackFunc = useCallback(()=>{ foo(title) },[title])

ahora tu efecto de uso será

 useEffect(() => { notificationListener.current = Notifications.addNotificationReceivedListener(callbackFunc); return () => {/* Removing Listener */}; }, [])
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