Ich versuche, eine Glimmer-Komponente als Widget-Baum-Blatt zu rendern, wie ich es schon oft getan habe, aber ich bekomme diesen seltsamen Fehler, den ich noch nie zuvor gesehen habe:
TypeError: this.parentMountWidgetComponent is undefined
der in dieser Zeile ausgelöst wird:
Es scheint, dass this.widget?._findView() || this._emberView
undefined ist.
(this.widget existiert)
Mein Code im sehr frühen Stadium ist hier:
Ist es legal, RenderGlimmer in diesem Kontext zu verwenden?
Basiert dies darauf, dass ein Vorfahre diese Eigenschaft hat?
this._findAncestorWithProperty("_emberView")
was undefiniert zurückkommt.
Oder dass es selbst eine _emberView hat (was es nicht hat)
Ich vermute, der Vorfahre hätte es hier setzen sollen:
OK, ein paar weitere Informationen.
Wenn der Poll gerendert wird (als Baum von Widgets), wird diese Zeile ausgeführt, aber wenn Sie zurück zu “Abstimmen” wechseln, wird sie nicht ausgeführt, daher findet sich aus irgendeinem Grund kein Vorfahre mit einer “_emberView” (Oder er wird nicht gefunden)
Die Quelle dieses Problems könnte sein, dass das Widget nie neu gerendert wird:
rerenderWidget()
wird trotz Hinzufügen eines neuen Widget-Baums nicht erneut ausgelöst … daher wird diese Eigenschaft nie gesetzt.
… daher könnte die Lösung darin bestehen, ein erneutes Rendern zu planen, wenn der Abstimm-Button gedrückt wird …
Das Poll-Plugin ist insofern etwas ungewöhnlich, als dass das Widget innerhalb des gekochten HTML eines Beitrags eingebunden wird, anstatt direkt über die MountWidget-Komponente in eine Ember-Vorlage eingebunden zu werden. Wir müssen hier wahrscheinlich zusätzliche Logik hinzufügen… werde ich mir ansehen
Ich denke, wenn wir das zusammenführen, sollte es Ihren Code zum Laufen bringen @merefield
Es ist nicht besonders schön, aber ich denke, es ist in Ordnung, da dies eine ziemlich seltene Situation ist und wir hoffen, all diese Widget/RenderGlimmer-Sachen in nicht allzu ferner Zukunft komplett herauszureißen