Estou tentando renderizar um Glimmer Component como uma folha de árvore de widget, como fiz várias vezes antes, mas estou recebendo este erro estranho que nunca vi antes:
TypeError: this.parentMountWidgetComponent is undefined
Ocorrendo nesta linha:
Parece que this.widget?._findView() || this._emberView
Isso depende de um ancestral ter essa propriedade?
this._findAncestorWithProperty("_emberView")
que retorna undefined.
Ou ele mesmo ter um _emberView (o que não tem)
Estou supondo que o ancestral deveria ter sido definido aqui:
Ok, mais algumas informações.
Quando a Enquete é renderizada (como uma árvore de widgets), esta linha é executada, mas quando você volta para votar, ela não é, portanto, por algum motivo não há um ancestral com um “_emberView” (Ou ele não está sendo encontrado)
A origem deste problema pode ser que o widget nunca é re-renderizado:
rerenderWidget() {
Não é acionado novamente, apesar de adicionar uma nova árvore de widgets… então essa propriedade nunca é definida.
… portanto, a solução para isso pode ser agendar uma re-renderização quando o botão Votar for pressionado …
O plugin de enquete é um pouco incomum, pois o widget é montado dentro do HTML processado de uma postagem, em vez de diretamente dentro de um template Ember através do componente <MountWidget>. Portanto, provavelmente precisamos adicionar alguma lógica extra aqui… darei uma olhada
Acho que se mesclarmos isso, deve fazer seu código funcionar @merefield
Não é particularmente bonito, mas acho que está tudo bem, já que esta é uma situação bem rara, e esperamos remover completamente todo esse código de widget/RenderGlimmer em um futuro não muito distante