Angular 刷新角度为9的mat表

Angular 刷新角度为9的mat表,angular,angular-material,angular9,Angular,Angular Material,Angular9,当我删除元素时,我的MAT-TABLE不会刷新 .ts文件 import { MatTableDataSource, MatTable } from '@angular/material/table'; @ViewChild(MatTable) table: MatTable<any>; const index = this.dataSource.data.findIndex(d => Number(d.id) == Number(id)); this.dataSource

当我删除元素时,我的MAT-TABLE不会刷新

.ts文件

import { MatTableDataSource, MatTable } from '@angular/material/table';
@ViewChild(MatTable) table: MatTable<any>;

const index = this.dataSource.data.findIndex(d => Number(d.id) == Number(id)); 
this.dataSource.data.splice(index, 1);
this.table.renderRows();
从'@angular/material/table'导入{MatTableDataSource,MatTable};
@ViewChild(MatTable)表:MatTable;
const index=this.dataSource.data.findIndex(d=>Number(d.id)==Number(id));
this.dataSource.data.splice(索引,1);
this.table.renderRows();
.html文件

<table mat-table [dataSource]="dataSource" class="lessons-table mat-elevation-z8" matSort table>

对于要更新的
mat表
数据,您需要将新数组不可变地分配给
数据源

试试这个

this.dataSource.data=this.dataSource.data.splice(索引,1);

更喜欢不可变的方法,如
过滤器
并使用
三重等于
this.dataSource.data=this.dataSource.data.filter(item=>+item.id!=+id)。这样,您就不需要使用
findIndex