入力が1つしかない小さなコンポーネントがあります
@Input() variables;
ngOnInit() {
console.log(this.variables);
}
envVars$: Observable<{
names: String[],
values: {}
}>;
<app-code [variables]="(envVars$ | async)?.values | json"></app-code>
オブジェクトがいっぱいですが、コンソールログにNULLがあります
オブジェクトが非同期に定義される前にONINITにログオンしているため、ログにはnullが表示されます。非同期パイプは意図したとおりに機能しています。initでオブジェクトを定義する必要がある場合は、構造を少し変更する必要があります。
代わりにこれを実行して、コンポーネントのインスタンス化の前にオブザーバブルにデータが入力されていることを確認します。
<app-code *ngIf="envVars$ | async as enVars" [variables]="envVars.values | json"></app-code>
ここでのngIfは、envVars $が値を出力するまでコンポーネントをインスタンス化しないようにangularに指示します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加