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

145
Visualizações
¿Cómo pasar useState a acciones de contexto?

Tengo un formulario en el que toda la funcionalidad funciona bien de forma independiente, según el propósito del diseño, obtuve la tarea de tener todos los cambios en el formulario y guardar la funcionalidad del formulario en acciones de contexto. Como ese formulario se usa en muchos lugares, para la funcionalidad común necesitamos agregar el código en acciones de contexto.

A continuación se muestra el fragmento de código de mi formulario existente donde no puedo compartir el código completo:

 const { state, actionsCollection } = useContext(StateContext); const [cardholder, setcardholder] = useState(state.creditCard.cardholder); const [cardnumber, setcardnumber] = useState(state.creditCard.cardnumber); const [errors, setErrors] = useState({ cardholder: false, cardnumber: false }); const onChange = (e) => { switch (e.target.name) { case "cardholder": setcardholder(e.target.value); var cardholderName = /^[a-zA-Z\u00C0-\u00FF\s*$]{1,50}$/.test(e.target.value); if (e.target.value === "") { setcardholder(e.target.value); } if (cardholderName === true) { setcardholder(e.target.value); setErrors({ ...errors, cardholder: false }); } break; ........ code continues }

Aquí necesito mover este código onchange a la acción contextual onChangeCreditCardFields():

 const onChange = (e) => { actionsCollection.booking.onChangeCreditCardFields() }

onchange se activa pero obtiene errores como:

 setErrors not defined setcardholder not defined .....

Como no puedo definir usestate en acciones.

¿Cómo migrar mi código onchange con esta funcionalidad?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La forma más fácil sería agregar parámetros como acciones de estado en actionsCollection.booking.onChangeCreditCardFields como

 const onChange = (e) => { actionsCollection.booking.onChangeCreditCardFields(e, setcardholder, setErrors) }

Y luego modifique su declaración de función en consecuencia

 const onChangeCreditCardFields = (e, setcardholder, setErrors) { //TODO: Your logic }
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