Angular 9 @ViewChild-Fehler beheben: Expected 2 arguments, but got 1: An argument for 'opts' was not provided.
English
Deutsch
Problem:
Sie versuchen, Ihre Angular 9.x-Anwendung zu kompilieren, aber Sie sehen eine Fehlermeldung wie
viewchild_error.txt
app/my-component/my-component.component.ts:24:4 - error TS2554: Expected 2 arguments, but got 1.
24 @ViewChild(MyOtherComponent) myOtherComponent: MyOtherComponent;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/@angular/core/core.d.ts:7888:47
7888 (selector: Type<any> | Function | string, opts: {
~~~~~~~
7889 read?: any;
~~~~~~~~~~~~~~~~~~~
7890 static: boolean;
~~~~~~~~~~~~~~~~~~~~~~~~
7891 }): any;
~~~~~
An argument for 'opts' was not provided.Lösung
Finden Sie diese Zeile in Ihrem Code an der in der Fehlermeldung angegebenen Position:
viewchild_wrong.ts
@ViewChild(MyOtherComponent) myOtherComponent: MyOtherComponent;und fügen Sie
viewchild_opts.ts
{static: false}als zweites Argument zur @ViewChild()-Deklaration hinzu:
viewchild_fixed.ts
@ViewChild(MyOtherComponent, {static: false}) myOtherComponent: MyOtherComponent;In den meisten Fällen möchten Sie static: false verwenden. Siehe diesen Beitrag auf StackOverflow für Details, wann static: true anstelle von static: false verwendet werden sollte.
Check out similar posts by category:
Angular, Javascript, Typescript
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow