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

168
Vistas
Reaccionar: función de llamada en el componente secundario si cambia el estado principal

Tengo un componente de procesamiento de eventos de pantalla completa invisible que captura y procesa todos los eventos del mouse. En ciertos eventos, quiero llamar a una función particular en un componente secundario. Creé una variable de estado en el componente principal. Estoy escuchando con efecto de uso en el componente secundario si hay algunos cambios en la variable de estado en el componente principal. Sin embargo, el gancho de efecto se llama a menudo. ¿Hay una mejor manera de hacer esto? En particular, quiero configurar drawing=true con el mouse hacia abajo y drawing=false con el mouse hacia arriba. Si dibujo transiciones de verdadero a falso, quiero guardar algo en la base de datos. Por lo tanto, es importante que la función en useState se llame solo una vez.

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

0

Tengo estas dos posibles soluciones.

  1. Si desea que useEffect no se llame en el primer renderizado, debe usar un gancho personalizado, probablemente llamado useUpdateEffect . Aquí hay una guía de uso del paquete de uso de reacción
  1. use useImperativeHandle para ejecutar una función en el elemento secundario desde el elemento principal. ejemplo:
 import React, { forwardRef, useRef } from 'react'; export default function Parent() { const ref = useRef<Ref>(null!); const handleCallFunction = (): void => ref?.current?.functionInChild(); return ( <div> <button onClick={handleCallFunction}> call a function in child from parent </button> <Child ref={ref} /> </div> ); } type Ref = { functionInChild: () => void; }; type Props = {}; const Child = forwardRef<Ref, Props>((props, ref) => { const functionInChild = () => { console.log('called from parent'); }; React.useImperativeHandle(ref, () => ({ functionInChild })); return <div>Child!</div>; });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Tienes que poner esto en tu código.

 useEffect(()=>{ /*Query logic*/ console.log('i fire once');},[your_variable]);

you_variable que desea cambiar cuando esta variable cambia su valor

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