You should be able to new up the MatTableDataSource
once at the class level and then use the data
setter in ngOnInit
.
dataSource = new MatTableDataSource<Thing>();
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
@ViewChild(MatSort, { static: true }) sort: MatSort;
ngOnInit() {
getThings().subscribe(things => {
this.dataSource.data = things;
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
});
}