Enciclopédia de Erros

Child query result is required but no value is available.

O resultado de uma child query obrigatória (contentChild.required ou viewChild.required) foi acessado antes que os resultados da query fossem calculados ou a query não tem correspondências.

Isso pode acontecer em duas situações distintas:

  • resultados da query foram acessados antes que uma determinada query pudesse coletar resultados;
  • uma query foi executada mas não correspondeu a nenhum node e não tem resultados como consequência.

Content queries e view queries cada uma calcula seus resultados em momentos diferentes:

  • resultados de contentChild estão disponíveis após uma host view (template onde uma directive declarando uma query é usada) ser criada;
  • resultados de viewChild estão disponíveis após um template de um component declarando uma query ser criado.

Acessar resultados de query antes que estejam disponíveis resulta no erro descrito nesta página. Mais notavelmente, resultados de query nunca estão disponíveis em um constructor do component ou directive declarando uma query.

Corrigindo o erro

Resultados de query contentChild podem ser acessados no lifecycle hook AfterContentChecked, ou depois. Resultados de query viewChild podem ser acessados no lifecycle hook AfterViewChecked, ou depois.

Certifique-se de que uma query obrigatória corresponde a pelo menos um node e tem resultados. Você pode verificar isso acessando os resultados da query nos lifecycle hooks listados acima.