在角度8中使用@viewChild

Jac*_*k M 2 javascript typescript angular-material angular8

我有一个使用@ViewChild的应用程序,下面是我的代码

 @ViewChild('paginator', { read: MatPaginator, static: true}) public paginator: MatPaginator;
Run Code Online (Sandbox Code Playgroud)

在前面,我正在使用, <mat-paginator [ngStyle]="{'display': orders.length > 0 ? 'flex': 'none' }" #paginator> 并且已经实现了AfterViewInit,这是我只需要检查分页器已初始化的代码:

ngAfterViewInit(): void {
    console.log('tab group', this.paginator);
}
Run Code Online (Sandbox Code Playgroud)

但是this.tabGroup是未定义的,因此我无法设置它的属性。我究竟做错了什么。

谢谢

heu*_*tik 6

由于Angular 8 ViewChildContentChild装饰器必须具有称为static的新选项。

如果添加static: true动态元素(包装在条件或循环中),则在ngOnInit或中都将无法访问该元素ngAfterViewInit

将其设置为static: false应具有预期的行为。

此外,更新到角8时,在命令行中会出现一个消息,说明新的ViewChildContentChild变化,并链接此文档页面,并且这里的拉力要求的变化,具有一定的解释。这可能有助于将您的头放在更改周围。