Angular @ViewChild错误:期望2个参数,但只传了1个——如何修复?
你好!我从Angular 7升级到Angular 9时遇到了一个奇怪的错误。以前我这样使用`@ViewChild()`:
```typescript
@ViewChild('myDiv') myDiv: ElementRef;
```
但现在TypeScript编译器报错:
```
Expected 2 arguments, but got 1.
```
我了解到在Angular 8+中`@ViewChild`的签名发生了变化。我尝试添加`{ static: false }`——错误消失了。但我不太明白这意味着什么。什么时候应该使用`static: true`,什么时候使用`static: false`?
例如,我有一个包含``元素的模板,我想在`ngAfterViewInit()`中访问它。还有一个指令` `,我在`ngOnInit()`中引用它。
请告诉我如何在Angular新版本中正确使用`@ViewChild`。为什么需要指定第二个参数?如果我在所有地方都设置`static: true`会怎样?
谢谢!
<<>>