Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

164
Visualizações
¿Registrar un campo de entrada cambiante en forma de gancho de reacción?

Estoy tratando de registrar valores de un formulario usando react-hook-form. Todas las demás situaciones funcionan, sin embargo, obtengo un valor de retorno de 'indefinido' cuando intento recuperar datos de un valor que también es un gancho de reacción ( useState ).

 const [quantity, setQuantity] = useState(1); const increaseQuantity = () => { setQuantity((prevQuantity) => prevQuantity + 1); }; const decreaseQuantity = () => { if (quantity > 1) { setQuantity((prevQuantity) => prevQuantity - 1); } }; const { register, handleSubmit } = useForm(); const onSubmit = (data) => { console.log(data); };
 <DescriptionButtonsWrapper> <CounterContainer> <CounterWrapper> <CounterButtons onClick={decreaseQuantity}>-</CounterButtons> </CounterWrapper> <CounterWrapper> <CounterInput {...register("quantity")} placeholder="Quantity" id="quantity" type="number" > {quantity} </CounterInput> </CounterWrapper> <CounterWrapper> <CounterButtons onClick={increaseQuantity}>+</CounterButtons> </CounterWrapper> </CounterContainer> </DescriptionButtonsWrapper> <DescriptionButtonsWrapper> <Btn onClick={handleSubmit(onSubmit)}>Add to Cart</Btn> </DescriptionButtonsWrapper>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar watch para realizar un seguimiento del valor del campo en el ciclo de vida de procesamiento y setValue para actualizar el valor del formulario de manera imperativa:

 const { register, watch, handleSubmit, setValue } = useForm({ defaultValues: { quantity: 0 } }); const quantity = watch("quantity"); const increaseQuantity = () => setValue("quantity", quantity + 1); const decreaseQuantity = () => { if (quantity > 1) { setValue("quantity", quantity - 1); } }; useEffect(() => { console.log(quantity); }, [quantity]); return ( <form onSubmit={handleSubmit((data) => alert(JSON.stringify(data)))}> <button type="button" onClick={decreaseQuantity}> - </button> <button type="button" onClick={increaseQuantity}> + </button> <input {...register("quantity")} id="quantity" type="number" /> <input type="submit" /> </form> );

Demostración de Codesandbox

Referencias

  • https://react-hook-form.com/api/useform/watch
  • https://react-hook-form.com/api/useform/setvalue
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda