@ViewChild - Angular 13 上的初始化错误

Wer*_*ika 3 initializer parent-child viewchild angular angular13

我正在 Angular 13 中创建应用程序。我想调用from 、 usingshow()的方法,但出现错误。旧的问题和答案在这种情况下不起作用。ChildComponentParentComponent@ViewChild

家长

<app-child #child></app-child>
Run Code Online (Sandbox Code Playgroud)
@ViewChild('child') child: ChildComponent;

showChild() {
   this.child.show();
}
Run Code Online (Sandbox Code Playgroud)

孩子

show(){
  console.log('show');
}
Run Code Online (Sandbox Code Playgroud)

错误:

属性“child”没有初始值设定项,并且未在构造函数中明确分配。


解决方案一:

家长

@ViewChild('child') child!: ChildComponent;
Run Code Online (Sandbox Code Playgroud)

错误:

类型错误:无法读取未定义的属性(读取“显示”)


解决方案2:

家长

@ViewChild('child') child: ChildComponent = new ChildComponent;
Run Code Online (Sandbox Code Playgroud)

没有错误 工作正常,但我怀疑这是否正确?

Sun*_*nny 5

你可以这样初始化。我将帮助您解决您的错误。

@ViewChild('child') child: ChildComponent = {} as ElementRef;

or 

@ViewChild('child') child: ChildComponent = {} as ChildComponent;
Run Code Online (Sandbox Code Playgroud)

  • @enno.void 链接给出 404 (2认同)