必要な子クエリ (contentChild.required
または viewChild.required
) 結果は、クエリ結果が計算される前にアクセスされましたか、またはクエリに一致するものがありません。
これは、2つの異なる状況で発生する可能性があります。
- クエリ結果は、特定のクエリが結果を収集する前にアクセスされました。
- クエリが実行されましたが、ノードに一致せず、結果として結果がありません。
コンテンツクエリとビュークエリのそれぞれは、異なる時点で結果を計算します。
contentChild
結果は、ホスト ビュー(ディレクティブを宣言するテンプレートを使用)が作成された後に利用できます。viewChild
結果は、クエリを宣言するコンポーネントのテンプレートが作成された後に利用できます。
クエリ結果が利用可能になる前にアクセスすると、このページに記載されているエラーが発生します。特に、クエリ結果は、クエリを宣言するコンポーネントまたはディレクティブのコンストラクターでは_決して_利用できません。
エラーの修正
contentChild
クエリ結果は、AfterContentChecked
ライフサイクルフック以降でアクセスできます。
viewChild
クエリ結果は、AfterViewChecked
ライフサイクルフック以降でアクセスできます。
必要なクエリが少なくとも1つのノードに一致し、結果があることを確認してください。上記のライフサイクルフックでクエリ結果にアクセスすることで、これを確認できます。