J'ai un composant Angular 4 avec une variable booléenne. La valeur initiale dépend d'un flux d'entrée.Où initialiser les variables dans un composant Angular 4 - ExpressionChangedAfterItHasBeenCheckedError
TypeScript me demande de déclarer la variable comme dans l'exemple ci-dessous. Sans cela, this.isLoading déclenchera une erreur. À ce stade, je ne sais pas encore sa valeur, donc je le déclare sans affecter de variable.
export class SomeComponent implements OnInit {
@Input() someStream$;
isLoading: boolean;
ngOnInit() {
someStream.subscribe((someData) => {
// Code to determine the value for isLoading
this.isLoading = true;
});
}
}
Plus tard, lorsque je connaîtrai la valeur, je la définirai sur true ou false. Mais alors 'ExpressionChangedAfterItHasBeenCheckedError' entre en jeu.
Quelle est la «bonne façon» de définir ces types de valeurs 'par défaut'.
Essayez cycle de vie ngOnChages() au lieu de ngOnInit(), il pourrait résoudre votre problème. –
Quand et où vous appelez prochain sur someStream? –
@MohamedGara dans le même bloc onInit est une logique qui vérifie les paramètres d'URL. Si tous les paramètres requis sont présents, il lance un appel http et définit isLoading. –