ZupIT/beagle-web-angular

Correções componentes que tem onInit

carolinegoncalveszup opened this issue · 3 comments

What would you like to be added:
Atualmente as funções do ciclo de vida do angular ngOnInit e ngAfterViewInit são disparados mesmo se os componentes não estiverem visíveis na tela (com um ngIf false por exemplo).
Desta forma, quando os componentes tem a função de onInit, ela deve ser disparada quando o componente está visível na tela.

A ideia original para resolver esse problema é verificar se o componente tem um parentNode, desta forma, validando se está ou não visível. Ou com a propriedade isConnected que o nativeElement tem. O problema (que foi percebido de forma empírica) é que o ciclo de vida é disparado quando o componente ainda tem um parentNode null ou isConnected false e quando o nó fica realmente visível (com as variáveis mencionadas anteriormente com os valores 'certos') se não houver alteração de input props, o ciclo de vida não é verificado novamente fazendo com que o onInit não seja chamado.
Atualmente uma implementação com timeout foi feita, porém precisamos de uma outra abordagem melhor.

Componentes que tem este problema:
-Container
-LazyComponent
-ListView (após a refatoração em #83)

Why is this needed:

Issue do angular associada angular/angular#13921

Este problema foi 'resolvido' com o timeout nos seguintes componentes: Container ,LazyComponent, ListView. Uma abordagem melhor poderá ser feita

Considerando que o problema foi resolvido, mesmo que de uma maneira não-recomendável, vou fechar essa issue.