我正在为线框图应用程序创建一个应用程序。我正在开发一个功能,用于从线框应用程序的数据生成链接,该链接将包含部分中不可预测的部分。这些部分的界面形状像这样export interface ProjectObject{ title: string; link?: string; summary?: string; description?: DescriptionPoint[]; sections?: ProjectObject[]; elements?: ProjectElement[]; challenges?: ProjectChallenges[]; feedback?: ProjectFeedbackItem[];}我想要做的是从每个对象中提取title和link属性并将其存储在一个像这样的变量中export interface NavLink{ title: string; link: string; subLinks?: NavLink[]}标题和链接属性当然是要从每个对象中提取的属性。该subLinks属性用于保存要从sections属性中的附加部分检索的嵌套链接。我想出了以下功能,试图提取和形成链接createProjectLinks(data: ProjectObject[]){ return data.map(a=>{ let links: NavLink = { title: a.title, link: a.link, subLinks: this.createProjectLinks(a.sections)}; return links; });}将ProjectObjects数组传递给其中时,出现以下错误错误类型错误:无法读取未定义的属性“地图”起初我认为这是一个异步问题,但我const直接在组件上方创建了一个用作虚拟数据以避免异步问题,并且我仍然遇到相同的错误,将虚拟数据传递到函数中。我究竟做错了什么?有没有更好的方法来实现这个功能?
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
以下错误不是打字稿问题,而是 javascript 问题
TypeError: Cannot read property 'map' of undefined
做这个
createProjectLinks(data: ProjectObject[] = []){ //give default value of [] to prevent mapping on undefined data
return data.map(a=>{
let links: NavLink = {
title: a.title,
link: a.link,
subLinks: this.createProjectLinks(a.sections)};
return links;
});
}
添加回答
举报
0/150
提交
取消