Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda