Estoy intentando renderizar un Glimmer Component como una hoja de widget, como he hecho varias veces antes, pero estoy obteniendo este extraño error que no había visto antes:
TypeError: this.parentMountWidgetComponent is undefined
Se dispara en esta línea:
Parece que this.widget?._findView() || this._emberView
¿Esto depende de que un ancestro tenga esta propiedad?
this._findAncestorWithProperty("_emberView")
que devuelve indefinido.
O que él mismo tenga un _emberView (que no tiene)
Supongo que el ancestro debería haberlo configurado aquí:
OK, un poco más de información.
Cuando se renderiza la Encuesta (como un árbol de widgets), esta línea se ejecuta, pero cuando vuelves a votar, no lo hace, por lo que por alguna razón no hay un ancestro con un “_emberView” (o no se encuentra)
La fuente de este problema podría ser que el widget nunca se vuelve a renderizar:
rerenderWidget() {
No se vuelve a disparar a pesar de agregar un nuevo árbol de widgets… por lo que esta propiedad nunca se establece.
… por lo tanto, la solución a esto podría ser programar una nueva renderización cuando se presiona el botón Votar …
El plugin de encuestas es un poco inusual en el sentido de que el widget se monta dentro del HTML cocido de una publicación, en lugar de directamente dentro de una plantilla de Ember a través del componente <MountWidget>. Así que probablemente necesitemos agregar algo de lógica adicional aquí… le echaré un vistazo
Creo que si fusionamos esto, debería hacer que tu código funcione @merefield
No es particularmente bonito, pero creo que está bien ya que es una situación bastante rara, y esperamos eliminar por completo todo este código de widget/RenderGlimmer en un futuro no muy lejano