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:
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!
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 }) };