使用Material数据表时,dataSource.connect不是函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Material数据表时,dataSource.connect不是函数相关的知识,希望对你有一定的参考价值。

我会使用dataSource作为数组的材质数据表。

import { Component, OnInit } from '@angular/core';
import { MatTableDataSource } from '@angular/material';
import { AjouttextService } from '../ajouttext.service';
import { DataSource } from "@angular/cdk/collections";
import { Observable } from "rxjs/Observable";
import { nomchamp } from '../model';

@Component({
  selector: 'app-datatable',
  templateUrl: './datatable.component.html',
  styleUrls: ['./datatable.component.css']
})
export class DatatableComponent implements OnInit {

  constructor(private dataService: AjouttextService) { }
  data: nomchamp[] = [{ id: "33", text: "HAHA" }, { id: "55", text: "bzlblz" }];

  displayedColumns = ['text'];
  dataSource = this.data;



  applyFilter(filterValue: string) {
    filterValue = filterValue.trim(); // Remove whitespace
    filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
  }
  ngOnInit() {
  }
}

当我运行我的应用程序时,我在html文件中遇到此错误,第2行:

错误TypeError:this.dataSource.connect不是函数

这是html文件:

<div class="example-container mat-elevation-z8">
  <mat-table #table [dataSource]="dataSource">

    <!-- Position Column -->
    <ng-container matColumnDef="text">
      <mat-header-cell *matHeaderCellDef> No. </mat-header-cell>
      <mat-cell *matCellDef="let element"> {{element.text}} </mat-cell>
    </ng-container>



    <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
    <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
  </mat-table>
</div>
答案

请参阅one of the examples from the docs

你需要以这种方式实例化MatTableDataSource

dataSource = new MatTableDataSource(yourDataArray);

在您的情况下,您还可以添加类型信息:

dataSource = new MatTableDataSource<nomchamp>(yourDataArray);

以上是关于使用Material数据表时,dataSource.connect不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Angular Material 表动态列

将行数据从Angular Material表显示到另一个组件中

对齐数据表的列

数据变化时如何在ReactJS中刷新Material-Table(Material-ui)组件

androidx.paging.DataSource.Factory 时 Room 不检索数据(使用 LiveData + Kotlin Coroutines)

如何创建 DataSource