Когда вы присоединяете *ngIf
к элементу, который оценивается как false
, он даже не будет отображаться в DOM.Это означает, что он не будет выбран как ViewChild и поэтому останется неопределенным.
Еще одна вещь, о которой следует помнить о ViewChild
, это то, что она ничего не подхватит до хука жизненного цикла AfterViewInit
, поэтому каждый раз, когда вам нужно присоединить что-то к ViewChild, сделайте это внутри ngAfterViewInit
, чтобы сделатьуверен, что это там.