I цитата следующее от здесь
Причина, по которой ваш пример не работает, заключается в том, что вы пытаетесь получить доступ к результатам запроса ViewChild до завершения инициализации представления. Вот почему ваш код должен быть помещен в хук ngAfterViewInit (после начальных элементов просмотра), а не в хук ngOnInit (перед начальными элементами просмотра).
В Ivy мы сделали согласование синхронизации таким образом, чтобы запросы ViewChild и ViewChildren по умолчанию разрешались после начальных элементов представления, а не в зависимости от расположения результатов в шаблоне. Немного проще рассуждать, хотя это означает, что по умолчанию вы не найдете результаты запроса вида в ngOnInit.
Если вам нужны результаты запроса в этом хуке, вы можете явно указать, что запрос будет помечен как «статический»
Таким образом, для вашего случая использования вы можете пометить запрос как статический (как это сделала бы схема V8):
@ViewChild('test', {static: true}) test: ElementRef;
... или переместите логику в ngAfterViewInit (предпочтительно).