我正在尝试将多个选定项作为数组推送,但是收到错误消息“无法读取未定义的属性'push'”
payload: Array<any>;
runRequests() {
const dialogRef = this.dialog.open(DashboardDialogComponent, {
width: '280px', height: 'auto', data: { title: 'Run Now', details: 'Submit the request to run immediately' }
});
dialogRef.afterClosed().subscribe(result => {
if (result) {
this.selection.selected.forEach(element => {
const request = { 'reqId': element.reqId, 'runAt': this.datePipe.transform(new Date(), "yyyy-MM-dd'T'H:mm:ssZZZ") };
this.payload.push(request); //I am getting error in this line,
});
this.store.dispatch(new requestDashboardActions.RunNow(this.payload));
}
});
}
答案 0 :(得分:1)
您需要初始化属性:
payload: Array<any> = []
如果您检查转译的javascript文件,除非您使用空数组payload
对其进行初始化,否则将没有名为[]
的属性
更新:
我认为这是班级的财产。如果只是局部变量,只需删除this
关键字。
payload.push(request)
答案 1 :(得分:0)
您需要为
分配一个初始值 payload: Array<any> = []
如果您不分配JS,则会为其隐式分配一个值undefined
,而undefined
则没有push
方法。