쿼리 결과를 계산하기 전이거나 쿼리와 일치하는 대상이 없을 때 필수 자식 쿼리(contentChild.required 또는 viewChild.required) 결과에 접근했습니다.
다음 두 가지 상황에서 발생할 수 있습니다.
- 해당 쿼리가 결과를 수집하기 전에 쿼리 결과에 접근한 경우
- 쿼리를 실행했지만 일치하는 노드가 없어 결과가 없는 경우
콘텐츠 쿼리와 뷰 쿼리는 서로 다른 시점에 결과를 계산합니다.
contentChild결과는 쿼리를 선언한 디렉티브가 사용되는 템플릿인 호스트 뷰가 생성된 뒤에 사용할 수 있습니다.viewChild결과는 쿼리를 선언한 컴포넌트의 템플릿이 생성된 뒤에 사용할 수 있습니다.
쿼리 결과를 사용할 수 있기 전에 접근하면 이 페이지에서 설명하는 오류가 발생합니다. 특히 쿼리를 선언한 컴포넌트나 디렉티브의 생성자에서는 쿼리 결과를 절대로 사용할 수 없습니다.
오류 해결
contentChild 쿼리 결과는 AfterContentChecked 라이프사이클 훅부터 접근할 수 있습니다.
viewChild 쿼리 결과는 AfterViewChecked 라이프사이클 훅부터 접근할 수 있습니다.
필수 쿼리가 적어도 하나의 노드와 일치하고 실제 결과가 있는지 확인하세요. 앞서 나열한 라이프사이클 훅에서 쿼리 결과에 접근하면 확인할 수 있습니다.