Внести вклад
Энциклопедия ошибок

Результат дочернего запроса является обязательным, но значение отсутствует

Произошло обращение к результату обязательного дочернего запроса (contentChild.required или viewChild.required) до того, как результаты были вычислены, или у запроса нет совпадений.

Это может произойти в двух различных ситуациях:

  • к результатам запроса обратились до того, как данный запрос смог собрать результаты;
  • запрос был выполнен, но не совпал ни с какими узлами, и, как следствие, не имеет результатов.

Запросы контента (content queries) и запросы представления (view queries) вычисляют свои результаты в разные моменты времени:

  • результаты contentChild доступны после создания хост-представления (шаблона, где используется директива, объявляющая запрос);
  • результаты viewChild доступны после создания шаблона компонента, объявляющего запрос.

Обращение к результатам запроса до того, как они станут доступны, приводит к ошибке, описанной на этой странице. В частности, результаты запроса никогда не доступны в конструкторе компонента или директивы, объявляющей запрос.

Исправление ошибки

К результатам запроса contentChild можно обращаться в хуке жизненного цикла AfterContentChecked или позже. К результатам запроса viewChild можно обращаться в хуке жизненного цикла AfterViewChecked или позже.

Убедитесь, что обязательный запрос совпадает хотя бы с одним узлом и вообще имеет результаты. Вы можете проверить это, обратившись к результатам запроса в перечисленных выше хуках жизненного цикла.