Angular: Nos documentos do Lifecycle Hooks, não está claro se ngOnChanges não é chamado quando as entradas não são usadas

Criado em 27 mar. 2018  ·  1Comentário  ·  Fonte: angular/angular

Estou enviando um ...

[x] Documentation issue or request

Comportamento atual

A página ngOnChanges() :

chamado antes de ngOnInit() e sempre que uma ou mais propriedades de entrada vinculadas a dados mudam

e isso sobre ngOnInit() :

chamado [...] após o primeiro ngOnChanges()

Não está claro a partir dessa descrição que ngOnChanges() _não_ será chamado se o componente for usado _sem_ fornecer quaisquer entradas.

Comportamento esperado

A documentação deve ser mais clara sobre o comportamento de ngOnChanges() : especificamente, se um componente tem entradas declaradas, mas elas não são usadas, então ngOnChanges() _não_ será chamado antes de ngOnInit()

Reprodução mínima do problema com instruções

https://stackblitz.com/edit/angular-ngonchanges

Qual é a motivação / caso de uso para mudar o comportamento?

A julgar pelos documentos, pode-se ter a impressão de que ngOnChanges() sempre será chamado primeiro antes de ngOnInit() para um componente com entradas, mesmo se essas entradas não forem usadas pelo modelo / componente pai.

Isso pode levar a erros acidentais não tão óbvios, como remover ngOnInit() se duplicar a lógica de inicialização de um componente de ngOnChanges() .

docs feature medium

Comentários muito úteis

Isso também me pegou de surpresa.

A documentação realmente parece que o ngOnChanges é um requisito para o disparo do ngOnInit, mas também não deixa claro que o ngOnChanges pode não disparar se nenhum dado estiver vinculado. Quando, na realidade, está apenas representando a ordem em que são chamados, não que eles estejam relacionados entre si sendo acionados ou não.

Seria ótimo ter isso esclarecido.

>Todos os comentários

Isso também me pegou de surpresa.

A documentação realmente parece que o ngOnChanges é um requisito para o disparo do ngOnInit, mas também não deixa claro que o ngOnChanges pode não disparar se nenhum dado estiver vinculado. Quando, na realidade, está apenas representando a ordem em que são chamados, não que eles estejam relacionados entre si sendo acionados ou não.

Seria ótimo ter isso esclarecido.

Esta página foi útil?
0 / 5 - 0 avaliações