web-dev-qa-db-fra.com

Impossible de lire la propriété 'sorties' de null dans Angular 4

J'ai un projet Angular 4.3.6 où un extrait de modèle produit cette erreur.

Bloc de modèle:

<a [routerLink]="['/article',article?.id]">{{article?.title}}</a>

Trace de pile d'erreur:

ArticleSpComponent.html:26 ERROR TypeError: Cannot read property 'outlets' of null
    at createNewSegmentGroup (router.es5.js:2967)
    at updateSegmentGroup (router.es5.js:2896)
    at router.es5.js:2914
    at forEach (router.es5.js:593)
    at updateSegmentGroupChildren (

La cause de l'erreur semble évidente. La variable article est récupérée asynchrone à partir de Http et initialisée après le rendu de la page, donc elle est d'abord nulle. Cependant, je pensais que mettre? après cette variable permet d'éviter ce problème.

Pouvez-vous me conseiller?

17
Sergey

? dans article?.id fonctionne bien, mais la directive RouterLink n'aime pas faire passer un null.

Vous pouvez contourner l'utilisation de quelque chose comme:

<a *ngIf="article" [routerLink]="['/article',article?.id]">{{article?.title}}</a>
<a *ngIf="!article">{{article?.title}}</a>
34
Günter Zöchbauer