Avatar ·

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`会怎样? 谢谢! <<>>

错误原因及@ViewChild的正确使用