Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

152
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!