Angular material 无法读取属性';长度';使用MatPaginator时为null

Angular material 无法读取属性';长度';使用MatPaginator时为null,angular-material,Angular Material,我不断发现这个错误: core.js:1542 ERROR TypeError: Cannot read property 'length' of null at MatTableDataSource.push../node_modules/@angular/material/esm5/table.es5.js.MatTableDataSource._filterData (table.es5.js:702) at MapSubscriber.project (table.es5.js:657)

我不断发现这个错误:

core.js:1542 ERROR TypeError: Cannot read property 'length' of null
at MatTableDataSource.push../node_modules/@angular/material/esm5/table.es5.js.MatTableDataSource._filterData (table.es5.js:702)
at MapSubscriber.project (table.es5.js:657)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber._next (map.js:35)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)
at CombineLatestSubscriber.push../node_modules/rxjs/_esm5/internal/observable/combineLatest.js.CombineLatestSubscriber.notifyNext (combineLatest.js:83)
at InnerSubscriber.push../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:15)
at InnerSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)
at BehaviorSubject.push../node_modules/rxjs/_esm5/internal/BehaviorSubject.js.BehaviorSubject._subscribe (BehaviorSubject.js:22)
at BehaviorSubject.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:42)
at BehaviorSubject.push../node_modules/rxjs/_esm5/internal/Subject.js.Subject._trySubscribe (Subject.js:89)
我从数据库中获取的服务获取数据。它的功能很好。我的意思是功能是正确的。我可以进行分页,只是我在检查器中发现了这个错误。请参阅下面我的代码:

ngOnInit() {
    if (this.genParams.buildingId === null || this.genParams.buildingId === undefined) {
      this.router.navigate(['/main/viewproperties']);
    }

    this.buildingId = this.genParams.buildingId;
    this.getUnits();
  }

 public getUnits() {
    this.isLoading = true;
    this.unitService.newGetUnits(this.buildingId)
      .subscribe((data: any) => {
        this.ELEMENT_DATA = data;
        this.dataSource = new MatTableDataSource(this.ELEMENT_DATA);
        this.dataSource.paginator = this.paginator;
        this.isLoading = false;
        console.log(this.ELEMENT_DATA);
      }, err => {
        console.log(err);
      });
  }
这是在我的html中:

<mat-paginator [pageSizeOptions]="[1, 5, 10, 20]" showFirstLastButtons></mat-paginator>


非常感谢您的帮助。

我怀疑这是一个范围问题。尝试将其添加到类中,而不是函数中。您引用this.datasource,但在函数中将其设置为new,因此我假设您只是在类中声明var。我已经多次看到这个错误,它发生在我的数据源没有接收数据,但您似乎表示您的表正在使用数据运行时


你能到stackblitz.com复制一个工作示例,这样我可以进一步查看你的代码吗?我可能有一个轻微的想法,为什么会发生这种情况,但样品更好。
//  For data table operations.
  private dataSource = new MatTableDataSource();
  private dataLength: number;