Добавление входных данных углового компонента из внутренней подписки

#angular #rxjs #angular-material #rxjs-observables

#angular #rxjs #angular-материал #rxjs-наблюдаемые

Вопрос:

У меня есть component1.ts:

   export class Component1 implements OnInit, AfterViewInit  {
    public inputData1: any[] = [];
    public inputData2: any[] = [];
    public inputData3: any[] = [];
    private sub: Subscription;

    ngOnInit() {
       this.sub= this.service.dataObservable.subscribe((val: any) => {
       try {
          this.inputData1 = some logic to filter input data1 from val. <--- Here this.inputdata1/2/3 says undefined after assignment.
          this.inputData2 = some logic to filter input data2 from val.
          this.inputData3 = some logic to filter input data3 from val. 
       }
       catch (ex) {
    
       }
    }
 

component.html

 <mat-card class="tab-card">
   <app-component2 [inputData1]='inputData1' [inputData2]='inputData2' [inputData3]='inputData3' > 
   </app-component2>
</mat-card>
 

component2.ts

 export class Component2 implements OnInit {

  inputData1Columns: string[] = ['col1', 'col2'];
  @Input() inputData1: any[] = [];
  inputDataSource1 = new MatTableDataSource(this.inputData1);

  inputData2Columns: string[] = ['col1', 'col2'];
  @Input() inputData2: any[] = [];
  inputDataSource2 = new MatTableDataSource(this.inputData2);

  inputData3Columns: string[] = ['col1', 'col2'];
  @Input() inputData3: any[] = [];
  inputDataSource3 = new MatTableDataSource(this.inputData3);

  constructor() {}

}
 

По какой-то причине, когда запускается подписка и не назначаются входные данные 1, 2,3. Когда я ставлю точку останова, она говорит, что inputdata1 не определено. Чего мне не хватает?

Комментарии:

1. Ваш inputdata1,2,3 не определен в вашем дочернем компоненте или в вашей подписке?

2. @Marek W В моей подписке это не определено, оно также должно быть не определено в дочернем компоненте

3. По сути, данные не передаются в дочерний компонент

4. @user9969157 откуда вы знаете, что данные не передаются дочернему компоненту? Устанавливаете ли вы inputData1 / 2 / 3 внутри ngOnInit внутри component2.ts также или только в определении класса?