我有一个奇怪的错误,在我的应用程序阻止我前进。
我有一个any[]
类型的变量,它使用我作为表的数据源:
<table mat-table [dataSource]="EcoSummaryList">
变量初始化为空数组。但是,当我试图将某些内容分配到数组中时,会出现以下错误:
js:12632错误类型错误:无法设置
未定义的
推送../src/app/eco-summary/eco-summary.component.ts.ecosummarycomponent.onsummaryload
以下是相关代码:
public EcoSummaryList: any[] = [];
OnSummaryLoad(data: any) {
this.EcoSummaryList = [];
console.log(data);
if (data == undefined || data == null) return;
this.EcoSummaryList = data;
}
数据对象是正确的,数据是正确的,它过去曾经工作过。
我试着在其他帖子中寻找答案,但没有成功,我也试着在构造函数中初始化数组,在
ngOnInit
处创建var作为from typeArray<MyClass>
,然后调用new Array<MyClass>();
好像没什么用,有什么建议吗?
更新:即使我注释掉
<table>
并将[]
分配到var中,我仍然会得到相同的错误。 最佳答案
似乎OnSummaryLoad
没有被视为组件方法。不知道为什么。您可能需要尝试箭头函数语法。使用它可以解决问题:
public EcoSummaryList: any[] = [];
OnSummaryLoad = (data: any) => {
this.EcoSummaryList = [];
console.log(data);
if (data == undefined || data == null) return;
this.EcoSummaryList = data;
}
关于angular - Angular 6:无法设置未定义的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53355159/