我需要在列表中推送项目。
这是需要添加到列表中的模型。
FoodTitle CountA CountB CountC
Food1 2 7 (null)
Food2 5 (null) 7
Food3 4 4 (null)
Food4 (null) 10 (null)
Food5 (null) (null) 9
Food6 (null) (null) 11
我尝试使用此代码:
export interface OfflineLessonList {
id: number;
title: string;
courseId: number;
coursetitle: string;
published: boolean;
payType: PayTypes;
parentId: number;
displayOrder: number;
childes: OfflineChildLessonList[];
}
export interface OfflineChildLessonList {
id: number;
title: string;
courseId: number;
coursetitle: string;
published: boolean;
payType: PayTypes;
parentId: number;
displayOrder: number;
}
但是它告诉我这个错误:
无法设置未定义的属性“子级”
出什么问题?我该如何解决?? ?
答案 0 :(得分:1)
您的问题出在此代码上:
lessons.forEach(element => {
let i = 0;
if (parent.parentId === element.id) {
let find = data.find(x => x.id === parent.parentId);
find.childes = [];
find.childes.push(model);
}
i++;
});
在某些情况下,let find = data.find(x => x.id === parent.parentId);
如果找不到记录,将返回undefined。因此,您需要处理这种情况。
在尝试推送之前,请考虑检查该值是否存在:
lessons.forEach(element => {
let i = 0;
if (parent.parentId === element.id) {
let find = data.find(x => x.id === parent.parentId);
if (find) {
find.childes = [];
find.childes.push(model);
}
}
i++;
});
答案 1 :(得分:1)
let find = data.find(x => x.id === parent.parentId);
在此处未定义查找值
查找方法的返回值
满足条件的数组中第一个元素的值 提供测试功能。否则,返回undefined。
您正在尝试为未定义的值设置属性,因此会出现错误
答案 2 :(得分:1)
添加其他支票
{{1}}
答案 3 :(得分:1)
尝试这样:
let find = data.find(x => x.id === parent.parentId);
if(find){
find.childes = [];
find.childes.push(model);
}