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

155
Vistas
¿Cómo forzar que un componente funcional se vuelva a procesar al enviar?

Tengo entradas de formulario que actualizan su estado de formulario (X) con un onChange , luego tengo un formulario onSubmit que tiene que hacer 2 cosas:

  1. actualizar un estado separado (Y) usando información del estado (X)
  2. ejecutar una función real que usaría estado (Y)
 const [ethValue, setEthValue] = React.useState({ethValue: 0}); const submit = (e) => { setEthValue(() => { return { ethValue: formData.value } }) e.preventDefault(); runContractFunction() };

Está funcionando, sin embargo, para que complete la tarea, tengo que presionar el botón Enviar dos veces, debido a la naturaleza asíncrona de las funciones establecidas. Para que terminara de configurarse, decidí usar la re-renderización para que terminara de configurar el estado, pero ninguno de los métodos que probé funcionó.

Dado que uso componentes funcionales, no puedo usar forceUpdate() y no puedo poner useEffect dentro de mi función de submit porque colocaría el gancho useEffect fuera del cuerpo de la función del componente.

Quiero hacerlo para que tengas que presionar Enviar una vez y no dos veces para que funcione. ¿Cómo soluciono este problema?

¡Gracias de antemano por tu tiempo!

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

0

Pase ese valor 'Y' a la función como argumento que lo usa como estado.

 const submit = (e) => { setEthValue(() => { return { ethValue: formData.value } }) e.preventDefault(); runContractFunction({ ethValue: formData.value }) };
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