Avatar ·

Error Angular @ViewChild: Expected 2 arguments, but got 1 — ¿cómo solucionarlo?

¡Hola! Estoy migrando de Angular 7 a Angular 9 y me encontré con un error que no entiendo. Antes usaba `@ViewChild()` así: ```typescript @ViewChild('myDiv') myDiv: ElementRef; ``` Pero ahora el compilador TypeScript muestra un error: ``` Expected 2 arguments, but got 1. ``` Leí que en Angular 8+ cambiaron la firma de `@ViewChild`. Intenté agregar `{ static: false }` y el error desapareció. Pero no entiendo bien qué significa. ¿Cuándo debo usar `static: true` y cuándo `static: false`? Por ejemplo, tengo una plantilla con un elemento `
`, y quiero acceder a él en `ngAfterViewInit()`. También tengo una directiva ``, a la que accedo en `ngOnInit()`. Por favor, indícame cómo usar correctamente `@ViewChild` en las nuevas versiones de Angular. ¿Por qué es necesario especificar el segundo argumento? ¿Y qué pasaría si pongo `static: true` en todas partes? ¡Gracias! <<>>

Causa del error y uso correcto de @ViewChild en Angular