错误TypeError:无法将未定义或null转换为对象ejs-treegrid

时间:2019-12-03 14:10:43

标签: angular typescript

在Angular应用程序中,我无法读取使用[dataSource]创建的服务。

错误TypeError:无法将未定义或null转换为对象 错误TypeError:无法读取未定义的属性'getService'

component.ts

import { Component, OnInit } from '@angular/core';
import { RailroadAgreementService } from '../../services/railroad-agreement.service';
import { RRA_ID } from '../../models/RRA_ID';

@Component({
  selector: 'app-railroad-agreements',
  templateUrl: './railroad-agreements.component.html',
  styleUrls: ['./railroad-agreements.component.css'],
})

export class RailroadAgreementsComponent implements OnInit {

  public data: RRA_ID[];

  constructor(private railroadAgreementService: RailroadAgreementService) {}

  ngOnInit(): void {
    this.railroadAgreementService.getRRAId().subscribe((data) => {
      this.data = data;
      console.log(this.data);
    })

  }

}

component.html

<ejs-treegrid [dataSource]="data">

</ejs-treegrid>

1 个答案:

答案 0 :(得分:0)

如果服务方法返回的是“冷”可观察值,则其值最初将为null,并且您的组件抱怨它无法访问期望的属性,因为它收到了null而不是对象,数组等。

这是因为Observable代码正在异步运行。

要解决此问题,您可以强制组件等待data属性为true(不为null,undefined,false为空字符串等)才能呈现:

<ejs-treegrid *ngIf="data" [dataSource]="data"></ejs-treegrid>