为了账号安全,请及时绑定邮箱和手机立即绑定

需要帮助创建动态导航菜单

需要帮助创建动态导航菜单

幕布斯7119047 2021-11-18 15:47:59
我正在为线框图应用程序创建一个应用程序。我正在开发一个功能,用于从线框应用程序的数据生成链接,该链接将包含部分中不可预测的部分。这些部分的界面形状像这样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;

    });

}


查看完整回答
反对 回复 2021-11-18
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信