Vue: Vnode de elevación: advertencia de bucle infinito

Creado en 15 sept. 2017  ·  3Comentarios  ·  Fuente: vuejs/vue

Versión

2.4.4

Enlace de reproducción

http://jsfiddle.net/vjvMp/2019/

pasos para reproducir

El diseño preciso de los componentes está en JSFiddle. El ensamblaje de los componentes es por alguna razón muy frágil lo que me hace pensar que esto es un error. Por ejemplo, si elimino el componente layout más alto que no debería afectar el código, la advertencia desaparece: http://jsfiddle.net/vjvMp/2020/

¿Lo que es esperado?

Para que la ranura en el Niño se eleve hasta el Padre y se coloque encima del Niño sin problema.

¿Qué está pasando realmente?

El niño se renderiza pero hay una advertencia de bucle de actualización infinita.

Comentario más útil

  • Está devolviendo la API de data , esto hace que el objeto while api reactivo
  • Cuando configura los vnodes en la API que hace que Vue intente convertir el vnode
  • En 2.4.3, los nodos de ranura ahora se clonan en profundidad al volver a renderizar para corregir algunos errores, esto hace que la función de render registre todo el vnode para que sea una dependencia reactiva, por lo que mutar el vnode desencadena una nueva renderización.

Por ahora, su solución podría ser Object.freeze el vnode o no hacer que la inyección de api sea reactiva.

Todos 3 comentarios

El código funcionaba en v2.4.2 ; parece que se introdujo en la v2.4.3.

  • Está devolviendo la API de data , esto hace que el objeto while api reactivo
  • Cuando configura los vnodes en la API que hace que Vue intente convertir el vnode
  • En 2.4.3, los nodos de ranura ahora se clonan en profundidad al volver a renderizar para corregir algunos errores, esto hace que la función de render registre todo el vnode para que sea una dependencia reactiva, por lo que mutar el vnode desencadena una nueva renderización.

Por ahora, su solución podría ser Object.freeze el vnode o no hacer que la inyección de api sea reactiva.

¡Fix funciona muy bien! Gracias @ yyx990803

¿Fue útil esta página
0 / 5 - 0 calificaciones