Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

653
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda