Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

463
Views
error TS2554: Esperaba 2 argumentos, pero obtuvo 1 con @ViewChild

Estaba usando ViewChild de la siguiente manera:

 @ViewChild("InternalMedia") localStream; @ViewChild("emoji") mEmoji;

Que funcionaba bien hasta angular-7.x

tan pronto como lo actualicé a angular-8.x, comenzó a dar el siguiente error

 .../call_emoji/component.ts(41,4): error TS2554: Expected 2 arguments, but got 1.

Revisé https://angular.io/api/core/ViewChild y cuando lo cambio a

 @ViewChild("InternalMedia",{static:false}) remoteStream;

Funciona. No entiendo lo que hace la estática y cuál debería ser su valor para trabajar como antes.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

De acuerdo con la documentación de Angular, verificaciones estáticas.

si resolver o no los resultados de la consulta antes de que se ejecute la detección de cambios (es decir, devolver solo resultados estáticos). Si no se proporciona esta opción, el compilador volverá a su comportamiento predeterminado, que consiste en utilizar los resultados de la consulta para determinar el tiempo de resolución de la consulta. Si los resultados de alguna consulta están dentro de una vista anidada (p. ej., *ngIf), la consulta se resolverá después de que se ejecute la detección de cambios. De lo contrario, se resolverá antes de que se ejecute la detección de cambios.

Efectivamente, esto determina cuándo se ejecuta la consulta para recuperar el elemento. Si se establece en falso, la consulta se ejecutará después de cualquier detección de cambios. Si se establece en verdadero, se ejecutará inmediatamente.

Para obtener más información y por qué se incluye esta opción, consulte este número de Github .

El comportamiento que probablemente esté buscando es establecer static en false. Esto dará como resultado el comportamiento anterior. Sin embargo, si la vista de su componente no es dinámica (por ejemplo, no usa * ngIf), debería poder establecerlo en verdadero de forma segura.

over 4 years ago · Santiago Trujillo Report

0

Después de la migración a Angular 8, debe declarar manualmente si es estático o no

 @ViewChild(QuilldEditorComponent, {static: true}) quillEditorComponentInstance;

Si tiene más preguntas, pregúntelas o para obtener más detalles, lea este número https://github.com/angular/angular-cli/issues/14553 o eche un vistazo a la documentación oficial https://angular.io/guide/static -consulta-migración

 // query results available in ngOnInit @ViewChild('foo', {static: true}) foo: ElementRef; OR // query results available in ngAfterViewInit @ViewChild('foo', {static: false}) foo: ElementRef;
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!