Доброе утро У меня возникла эта проблема, и я просто не знаю, как ее решить. Это существующий код, который в настоящее время создает административное представление текущих пользователей. Существует компонент таблицы, который мы используем для привязки пользовательских данных. Однако я получаю это Невозможно прочитать свойство forEach неопределенной ошибки в файле TS компонента таблицы.
table.components.ts
export class TableComponent implements OnInit {
@Input() header;
@Input() columns: any[];
@Input() data;
constructor() {}
columnKeyValuePairs = [];
displayedColumns = [];
tableData: MatTableDataSource<any>;
@ViewChild(MatSort, { static: false }) sort: MatSort;
expandedElement;
ngAfterViewInit() {
this.tableData.sort = this.sort;
}
ngOnInit(): void {
this.columns.forEach((col) => {
let pair = Object.entries(col);
this.columnKeyValuePairs.push(pair[0]);
this.displayedColumns.push(pair[0][0]);
});
}
ngOnChanges(old) {
if (old.data) {
this.tableData = new MatTableDataSource<any>(old.data.currentValue);
}
}
}
Из приведенного выше кода это строка, в которой я получаю сообщение об ошибке, this.columns.forEach((col) => {
Admin-ui.components.ts
export class AdminUiComponent implements OnInit {
public users: any[] = [];
resetUsers: any;
@Input() header: string;
@Input() columns: [
{ userName: "User Name" },
{ firstName: "First Name" },
{ lastName: "Last Name" },
{ email: "Email" },
{ roleId: "Role ID" },
{ statusId: "Status ID" },
];
@Input() data: any[];
constructor(
private userService: UserService,
) { }
ngOnInit(): void {
this.userService;
this.userService.getUsers().subscribe(data => {
this.users = data.users;
console.info(data.users);
});
}
}
admin-ui.components.html
<div class = "admin">
<app-table [header] = "header"
[data] = "users"
[columns] = "columns">
</app-table>
</div>
Admin-ui.component.ts
export class AdminUiComponent implements OnInit {
public users: any[] = [];
resetUsers: any;
@Input() header: string;
columns = [ // Remove @Input and use `=` instead of `:`
{ userName: "User Name" },
{ firstName: "First Name" },
{ lastName: "Last Name" },
{ email: "Email" },
{ roleId: "Role ID" },
{ statusId: "Status ID" },
];
...
вы используете <app-table> в другой части компонента AdminUI? кажется, что утвержденный ответ такой же, как и то, что я сделал.
Пользовательский интерфейс администратора
export class AdminUiComponent implements OnInit {
public users: any[] = [];
resetUsers: any;
@Input() header: string;
columns = [ // Remove @Input and use `=` instead of `:`
{ userName: "User Name" },
{ firstName: "First Name" },
{ lastName: "Last Name" },
{ email: "Email" },
{ roleId: "Role ID" },
{ statusId: "Status ID" },
];
...
}
Таблица Компонент:
....
ngOnInit(): void {
if (Array.isArray(this.columns))
this.columns.forEach((col) => {
let pair = Object.entries(col);
this.columnKeyValuePairs.push(pair[0]);
this.displayedColumns.push(pair[0][0]);
});
}
....
спасибо.... к сожалению, это не работает. Это то, что у меня было изначально. Я все равно получу ту же ошибку.