Angular: Lifecycle Hooksのドキュメントでは、入力が使用されていないときにngOnChangesが呼び出されないことは明らかではありません。

作成日 2018年03月27日  ·  1コメント  ·  ソース: angular/angular

私は提出しています...

[x] Documentation issue or request

現在の動作

ライフサイクルフックのページには、 ngOnChanges()について書かれています:

ngOnInit() 、および1つ以上のデータバインドされた入力プロパティが変更されるたびに呼び出されます

そしてこれは約ngOnInit()

最初のngOnChanges()後に[...]と呼ばれます

その説明から、コンポーネントが入力を提供せずに使用された場合にngOnChanges()が呼び出されないことは明らかではありません。

予想される行動

ドキュメントはngOnChanges()動作についてより明確にする必要があります。具体的には、コンポーネントに入力が宣言されているが使用されていない場合、 ngOnChanges()ngOnInit()前に呼び出されません。

指示による問題の最小限の再現

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

行動を変える動機/ユースケースは何ですか?

ドキュメントから判断すると、入力のあるコンポーネントでは、親テンプレート/コンポーネントで入力が使用されていない場合でも、 ngOnChanges()が常にngOnInit()前に最初に呼び出されるという印象を受けるかもしれません。

これにより、コンポーネントの起動ロジックがngOnChanges()から重複している場合に、 ngOnInit()を削除するなど、それほど明白ではない偶発的なエラーが発生する可能性があります。

docs feature medium

最も参考になるコメント

これも私を捕らえました。

ngOnChangesがngOnInitの起動の要件であるように、ドキュメントは実際に出くわします。また、データがバインドされていない場合、ngOnChangesがまったく起動しない可能性があることも明確にされていません。 実際には、それは単にそれらが呼び出される順序を描写しているだけであり、それらがトリガーされているかどうかに関係しているということではありません。

これを片付けてもらうのは素晴らしいことです。

>すべてのコメント

これも私を捕らえました。

ngOnChangesがngOnInitの起動の要件であるように、ドキュメントは実際に出くわします。また、データがバインドされていない場合、ngOnChangesがまったく起動しない可能性があることも明確にされていません。 実際には、それは単にそれらが呼び出される順序を描写しているだけであり、それらがトリガーされているかどうかに関係しているということではありません。

これを片付けてもらうのは素晴らしいことです。

このページは役に立ちましたか?
0 / 5 - 0 評価