Передача данных в дочерний компонент, но получение неопределенного значения после onChanges - PullRequest
1 голос
/ 03 октября 2019

Может любой ответить, почему после передачи данных в дочерний компонент this.rows становится и передаваемые данные становятся неопределенным родительским компонентом:

this.report$ = this.finInfoClient.getFinancialOperationsReport(params);
<div class="card-body p-0 d-flex flex-column" *ngIf="report$ | async as rep">
<div class="row flex-row flex-fill">
<app-financial-operations-grid [data]="rep.operations"
(gridItemSelected)="itemSelected($event)">
</app-financial-operations-grid>
</div>
</div>

дочерний компонент:

@Input() data: FinancialOperation[];
rows: FinancialOperation[] | null;
get root(): FinancialOperation[] {return this.rows.filter(d => d.parentId === undefined || d.parentId === null);}
ngOnChanges(changes: SimpleChanges) {
   if (changes['data']) {
       this.rows = this.data;
   }
}

и послеonChanges завершено все локальные переменные становятся неопределенными

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Попробуй так:

ngOnChanges(changes: SimpleChanges) {
   const dataChange = changes.data;

   if (dataChange != undefined ) {
     this.rows = dataChange.currentValue
   }
}
0 голосов
/ 03 октября 2019

Ваш report - это поток. Возможно, вам придется передать ваш report.operations дочернему компоненту вместе с async pipe.

Например:

<app-financial-operations-grid [data]="(report$ | async).operations"
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...