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

276
Views
Formik pasando el contexto a la validación yup

He buscado en Internet literalmente en todas partes, y también en los documentos, pero no pude encontrar una solución que funcione en mi proyecto actual. Breve contexto:

Tenemos un formulario que muestra campos adicionales dependiendo de si está adding o editing . Al agregar, tenemos 2 campos diferentes. A la hora de editar, tenemos 5 campos diferentes.

Ahora, cuando estamos agregando, no quiero que se validen estos tres campos restantes. Porque serán necesarios cuando edite su formulario. Aquí es donde entrará el contexto.

Actualmente estoy usando el accesorio de validate en el <Formik /> así:

 <Formik {...} validate={(values: FormValues) => { try { validateYupSchema(values, getVersionsSchema, true, { mode: "testing" }); } catch (e) { return yupToFormErrors(e); } return {}; }} >

La función validateYupSchema acepta estos 4 parámetros que he completado:

 values: T, schema: any, sync?: boolean, context?: any

Ahora, en mi esquema de validationSchema , me gustaría acceder a este objeto de context . Actualmente, buscando en Google durante las últimas 6 horas, constantemente me recomienda este enfoque:

 export const getVersionsSchema = (t: TFunction<Namespace<"en">>) => Yup.object().shape({ {...} optIn: Yup.string().when("mode", (mode, schema) => { console.log(mode, schema); return schema.required("test"); }), {...} });

Aquí puede ver que estoy usando when y aparentemente tengo que pasar la variable como un nombre de cadena como primer argumento y una función como segundo argumento con el nombre de la variable de contexto y el esquema como argumentos.

Sin embargo, cuando registro el mode en este caso, no está definido...

¿Puede alguien señalarme en la dirección correcta tal vez?

Aquí hay una caja de códigos:

https://codesandbox.io/s/condescending-water-3fmvsv?file=/src/App.js

about 4 years ago · Juan Pablo Isaza
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!