Angular 2 @ViewChild retourne undefined — comment accéder correctement au composant enfant ?
Bonjour à tous ! Je suis débutant en Angular (2+) et TypeScript, et je suis confronté à un problème qui me laisse perplexe. J'essaie d'accéder à un composant enfant via le décorateur @ViewChild, mais il retourne constamment undefined.
Voici mon code. J'ai un composant parent `ParentComponent` :
```typescript
import { Component, ViewChild, AfterViewInit } from '@angular/core';
import { ChildComponent } from './child.component';
@Component({
selector: 'app-parent',
template: `
`
})
export class ParentComponent {
@ViewChild(ChildComponent) childComponent!: ChildComponent;
callChildMethod() {
if (this.childComponent) {
this.childComponent.doSomething();
} else {
console.log('childComponent is undefined');
}
}
}
```
Et le composant enfant `ChildComponent` :
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-child',
template: `
Enfant
` }) export class ChildComponent { doSomething() { console.log('Méthode enfant appelée'); } } ``` Le problème est que lorsque je clique sur le bouton, `childComponent` est toujours undefined. J'ai lu que @ViewChild est accessible après l'initialisation de la vue, donc j'ai essayé d'utiliser le hook `ngAfterViewInit`, mais cela n'a pas résolu le problème. Que dois-je faire pour accéder correctement au composant enfant ? Merci d'avance pour votre aide !No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Microservices en PHP : architecture et pratique
Canonical vs Simple vs Class Name en Java : Analyse complète
«out» en Kotlin : comprendre la covariance avec des exemples et des questions
JSON ou Serialize : que choisir pour stocker les tableaux PHP ? (guide complet)