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

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

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 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!