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

129
Views
Empalme en elemento calculado que mapea elementos

Me gustaría asegurarme de que todos los objetos en una matriz sean del tipo Item . Si lo hago, un splice ya no funciona más adelante.

Así es como hago esto:

 computedItems: { get() { //return this.modelValue; return this.modelValue?.map((item) => new Item(item)); }, set(newValue) { this.$emit("update:modelValue", newValue); } }

Esto funciona bien, pero parece romper la reactividad, como:

 removeItem(item) { let key = this.computedItems.findIndex((i) => { return item === i; }); this.computedItems.splice(key, 1); }

no funciona (no hay error, la lista simplemente no se actualiza).

Si lo hago

 computedItems: { get() { return this.modelValue; }, set(newValue) { this.$emit("update:modelValue", newValue); } }

el empalme funciona como se esperaba (pero los elementos no están asignados al objeto específico).

Mis preguntas:

  1. ¿Cómo puedo solucionar eso?
  2. ¿Por qué es ese el caso? ¿Es una mala idea mapear dentro del setter calculado?
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No estoy seguro de por qué sucede y no puedo explicarlo muy bien.

Array y Object se guardan en las memorias. Así que es un puntero a los recuerdos. El puntero no estaba cambiando y nada es reactivo. (Dolor de cabeza)

Puedes probar este código:

 removeItem(item) { const newArray = [...this.computedItems]; let key = newArray.findIndex(i => item === i); newArray.splice(key, 1); this.computedItems = newArray; }
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!