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

645
Views
TypeError: no se puede definir la propiedad de índice de matriz más allá del final de una matriz con una longitud que no se puede escribir

estoy actualizando el estado en el formulario agregando dinámicamente campos de formulario, pero aparece este error lo que he intentado lo que debería suceder es que se deben agregar más campos a cada subcampo al hacer clic si quiero

 const addExperience = () => { let temp = Object.assign({}, form); temp.experience.push({ company: "", position: "", startDate: "", endDate: "", description: "", }); setForm(temp); }

esta es la forma

 const [form, setForm] = useState({ name: "adarsh raj", email: "adarsh@gmail.com", phone: "83404dvsdsd", address: "patel chowk", city: "deoghar", education: [ { school: "dav ", major: "intermediate", GPA: "8.12", }, ], experience: [ { company: "venturepact llc", position: "associate software developer", startDate: "dd-mm-yyyy", endDate: "dd-mm-yyyy", description: "description", }, ], projects: [ { projectName: "project name", projectDescription: "project description", }, ], skills: [ { skillName: "your skill name", }, ], });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

código como este debería funcionar. Pero para probar, puedes probar esta sintaxis:

 const addExperience = () => { let temp = Object.assign({}, form); temp.experience = [ ...temp.experience, { company: "", position: "", startDate: "", endDate: "", description: "" } ]; setForm(temp); };
about 4 years ago · Juan Pablo Isaza Report

0

Object.assign(target, source) solo copia superficial.

el valor de retorno useState es inmutable ;

Consulte la siguiente demostración

 var x = new Array(10).fill(0); Object.freeze(x); x.push(11) // same error

Puede resolver este problema deep copying o reasignando la experiencia de la first layer .

Solo se puede asignar la primera capa porque se usa una copia superficial. No se puede resolver si el atributo del problema aparece en el segundo nivel. Por lo tanto, no se recomienda este método y se recomienda la copia profunda.

 let temp = JSON.parse(JSON.stringify(form)); let temp = lodash.cloneDeep(form);// need install lodash
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!