過去 2 年我一直在研究 angular,但這是我第一次使用該界面。我面臨下面添加的一個小問題。
型別 'MatTableDataSource<Tasks[]>' 缺少型別 'Tasks[][]' 的以下屬性:length、pop、push、concat 和 24 more.ts(2740)
請幫我解決這個小問題。下面是我的代碼。
export interface Tasks {
id: string;
title: string;
description: string;
assignedTo: Array<Team>,
status: string;
}
服務
getTasks(): Observable<Tasks[]> {
return this.http.get<Tasks[]>(`${environment.API_URL}tasks`).pipe(
map(data => {
return data;
})
)
}
組件檔案
getTasks() {
this.taskService.getTasks().subscribe(response => {
// this.tasks = response;
console.log(response)
if (this.tasks) {
this.dataSource.data = new MatTableDataSource<Tasks[]>(response)
}
console.log(this.tasks)
})
}

任何解決方案表示贊賞!
uj5u.com熱心網友回復:
您不需要設定MatTableDataSourceas的型別Tasks[]。在內部MatTableDataSource將您的型別視為 T[]。
dataSource = new MatTableDataSource<Tasks>() // Tasks represents each row of the mat-table
getTasks() {
// your code
this.dataSource.data = response
}
我認為您應該將您的界面重命名為 ,Task而不是Tasks. 因為它只代表一個Task。
uj5u.com熱心網友回復:
添加這種方式 -
this.dataSource = new MatTableDataSource<Tasks>(response)
uj5u.com熱心網友回復:
public dataSource!: MatTableDataSource<Tasks>
dataSource.data = response
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376691.html
上一篇:Angular:從主題傳回真實值
下一篇:Eslint-配置的規則位置
