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

192
Views
La actualización de Formik initialValues a través de la inserción de matriz no actualiza los valores/formularios iniciales a través de la carga de archivos csv

Tengo la siguiente configuración de valores iniciales de Formik:

 const INITIAL_VALUES = { taskName: 'Test', taskNotes: 'Some notes', areaGroups: [ { name: Area Group 1, areaInfo: [ { areaName: "Area 1", areaCode: null } ] } ] };

Lo que estoy haciendo entonces es proporcionar al usuario la opción de cargar un archivo CSV para evitar que el usuario areaInfo más datos de información de área a través del formulario de interfaz.

El siguiente código parece agregar los valores CSV cargados a la matriz areaInfo , que puedo ver desde una console.log(values) pero en realidad no actualiza/actualiza los INITIAL_VALUES arriba o forma.

Sin embargo, la cuestión es que cuando hago clic en el campo de formulario areaName dentro de la matriz areaInfo , luego se actualiza y muestra mis datos CVS cargados, pero no los muestra después de seleccionar el archivo csv para cargar/analizar.

El código de mi componente para esto es el siguiente y usa los paquetes react-dropzone y papaparse npm:

 const PerformUpload = ({ values }) => { const formikProps = useFormikContext() const classes = useStyles(); const onDrop = useCallback(acceptedFiles => { acceptedFiles .filter((file) => file.type === "text/csv") .forEach(async (file) => { const text = await file.text(); const result = parse(text, { header: true }); const myData = result.data myData.map((data) => ( values.areaGroups[0].areaInfo.push( { "areaName": data.areaname, "areaCode": data.areacode } ) )) }); }, []); const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop }); return ( <React.Fragment> <section className="container"> <div {...getRootProps({className: 'dropZone'})}> <input {...getInputProps()} /> <p>Drag files here or click to select a file</p> </div> </section> </React.Fragment> ) }

Estoy realizando el envío a la matriz de values.areaGroups[0].areaInfo , pero no estoy seguro de si esto es correcto, ya que no actualiza los valores iniciales/frontend hasta que hago clic físicamente en el campo.

FYI, este componente PerformUpload se llama desde dentro:

 <Formik enableReinitialize={true} initialValues={INITIAL_VALUES} ....

¿No estoy seguro de lo que me estoy perdiendo/haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Logré resolver mi problema usando setFieldValue de setFieldValue antes de enviar los datos a mis valores iniciales.

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!