ViewChild не работает после обновления до angular 9 - PullRequest
0 голосов
/ 02 марта 2020

Что-нибудь меняется в ViewChild? После обновления до Angular 9 меню MatSideNav перестало работать.

export class SidenavOpenCloseExample implements OnInit, AfterViewInit {
   @ViewChild('menuSide', {read: MatSidenav, static: true}) menuSide: MatSidenav;

   opened: boolean;

   ngOnInit(): void {
       console.log("OnInit: " + this.menuSide);
   }

   ngAfterViewInit() {
     console.log("AfterViewInit: " + this.menuSide);
   }

   toggle() {
      this.menuSide.close();
   }
}

HTML

<mat-sidenav-container class="example-container">
   <mat-sidenav #sidenav mode="side" [(opened)]="opened">
     Sidenav content
   </mat-sidenav>

   <mat-sidenav-content>
      <p><button mat-button (click)="toggle()">Toggle menu</button></p>
   </mat-sidenav-content>
</mat-sidenav-container>

Я создал образец с таким поведением StackBlitz

1 Ответ

0 голосов
/ 02 марта 2020

Нет, я не думаю, что они что-то меняют в ViewChilds, но я думаю, что вы сделали опечатку, это должно быть:

@ViewChild('sidenav', {read: MatSidenav, static: true}) menuSide: MatSidenav;

, а не:

@ViewChild('menuSide', {read: MatSidenav, static: true}) menuSide: MatSidenav;

Так как вы не иметь #menuSide в вашем компоненте html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...