Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

466
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda