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

208
Views
$ emite el objeto al componente principal y lo empuja a la matriz. Los objetos en la matriz continúan siendo reactivos, ¿por qué?

Estoy tratando de crear una función en la que los usuarios puedan agregar varias publicaciones de currículum (desde el componente secundario) a una matriz (en el elemento principal). El problema es que cada objeto que envío a la matriz principal se mantiene reactivo con el formulario/objeto secundario. Entonces, si, por ejemplo, borro el formulario en el componente secundario, el Objeto que empujé a la matriz principal también borra todos sus valores. ¿Cómo emito y empujo el objeto posterior a la matriz principal y evito que sea reactivo, para poder agregar nuevas / más publicaciones de currículum?

CreateProfile.vue

 <template> <ResumePostInput :resume_posts="form.resume_posts" @resumeHandler="handleResume"/> </template> <script> export default { data() { form: { resume_posts: [] } } methods: { handleResume(post) { this.form.resume_posts.push(post) } } } </script>

ResumePostInput.vue

 <template -- Input fields binded to post object -- </template> <script> export default { emits: ["resumeHandler"], props: { resume_posts: Array }, data() { return { post: { title: '', sub_title: '', text: '', year_from: '', year_to: '', type: '' } } }, methods: { addResume() { this.$emit("resumeHandler", this.post) } } } </script>
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

emites una propiedad desconocida, es una post , no posts

y aprenda sobre el objeto JS, hay copia por referencia y valor

tal vez solo necesite actualizar su método addResume de esta manera

 addResume() { const post = JSON.parse(JSON.stringify(this.post)) this.$emit("resumeHandler", post) }
about 4 years ago · Juan Pablo Isaza Report

0

El problema no es que el objeto sea reactivo, sino que es el mismo objeto porque los objetos se pasan por referencia en JavaScript. Si se modifica en un lugar, se modifica en todas partes.

Para evitar esto, el objeto debe copiarse explícitamente. Para objetos poco profundos, esto se puede hacer con la dispersión de objetos:

 this.$emit("resumeHandler", {...this.post})

Para objetos profundamente anidados, se pueden usar pliegos múltiples o la función de clonación de terceros.

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!