Required child query (contentChild.required or viewChild.required) result was accessed before query results were calculated or query has no matches.
This can happen in two distinct situations:
- query results were accessed before a given query could collect results;
- a query was executed but didn't match any nodes and has no results as a consequence.
Content queries and view queries each calculate their results at different points in time:
contentChildresults are available after a host view (template where a directive declaring a query is used) is created;viewChildresults are available after a template of a component declaring a query is created.
Accessing query results before they're available results in the error described on this page. Most notably, query results are never available in a constructor of the component or directive declaring a query.
Fixing the error
contentChild query results can be accessed in the AfterContentChecked lifecycle hook, or later.
viewChild query results can be accessed in the AfterViewChecked lifecycle hook, or later.
Make sure that a required query matches at least one node and has results at all. You can verify this by accessing query results in the lifecycle hooks listed above.