Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda