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

248
Views
Reactividad de Vue 2: la propiedad calculada no activa la actualización de DOM

Tengo una propiedad calculada basada en algunas propiedades de objetos anidados. Cuando se cambia el objeto, la propiedad calculada parece actualizarse (en vue-dev-tools), pero el cambio no se refleja en la interfaz de usuario. Soy consciente de la reactividad de los objetos anidados, pero nunca cambio/asigno una propiedad anidada de mi objeto de order , la única vez que cambia es en updateOrder() (que asigna el objeto en el nivel raíz.

¿Hay algún motivo por el que mi interfaz de usuario no se actualice? ¿Las herramientas de desarrollo están sincronizadas con el mismo estado que la interfaz de usuario? ¿Me estoy perdiendo algo sobre el sistema de reactividad de Vue?

Aquí hay un código muy simplificado:

 <template> <my-component @order-changed="updateOrder" /> <div v-if="isOrderComplete"> Your order is complete // this never shows until I refresh page </div> <div v-else> Please Submit the order // this shows at first </div> </template> export default { props: function(){ initialOrder: Object, }, data: function(){ order: this.initialOrder }, methods: { updateOrder: function(newOrder){ // gets triggered by a child component this.order = newOrder; } }, computed: { isOrderComplete: function(){ // starts as false, becomes true later, seems to be updated in dev-tools return this.order.foo || this.order.bar } } }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Los objetos anidados no actualizan automáticamente las propiedades calculadas, puede observar los cambios en la propiedad Watch .

 watch: { 'order.foo'(newValue) { // * If any changes happed, this will be triggered ! } }
about 4 years ago · Juan Pablo Isaza Report

0

TLDR: asegúrese de no tener ningún error de javascript en la consola

No pude reproducir el error en un codepen aislado. Así que pensé que algo más estaba pasando. Tuve algunos errores arrojados por un efecto secundario de actualizar mi pedido. Parecían no estar relacionados, pero una vez que solucioné todos mis errores, el error desapareció. Creo que el error provocó un cortocircuito en el ciclo de vida de Vue, incluso si el error no tenía nada que ver con mi propiedad calculada.

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!