Javascript 如果没有';不存在?
我有一个链接表(共5个) 链接1 链接2 链接3 链接4 链接5 前两个链接是动态的。有时有他们的数据,有时没有 最后3个链接是静态的,始终显示 动态链接的数据深度嵌套在状态中 示例:Javascript 如果没有';不存在?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我有一个链接表(共5个) 链接1 链接2 链接3 链接4 链接5 前两个链接是动态的。有时有他们的数据,有时没有 最后3个链接是静态的,始终显示 动态链接的数据深度嵌套在状态中 示例:state.data.item.statics.footerLinks footerLinks是一个对象数组: footerLinks[{name:*****,url:*****},{name:*****,url:*****}] 我需要对state.props对象进行解构,以仅在footerLinks存在时获取fo
state.data.item.statics.footerLinks
footerLinks是一个对象数组:
footerLinks[{name:*****,url:*****},{name:*****,url:*****}]
我需要对state.props对象进行解构,以仅在footerLinks存在时获取footerLinks
i、 e.const{footers}=state.data.item.footerLink代码>
问题是我还需要在检查后映射页脚,以将“name”键更改为“link”(如果存在)。如果它不存在,我需要在映射之前立即停止代码,因为我不能映射null或undefined。它将抛出一个错误。如果没有页脚链接,并且仍然给我3个静态链接来显示在UI中,我不知道如何阻止代码到达地图。这就是我到目前为止所做的:
这些是始终存在的静态链接:
const mainlinks=[
{标签:*******”,url:*******},{标签:*******”,url:*******},{标签:*******”,url:*******”}代码>
****检查页脚链接****
****如果存在页脚链接,我想将其分配给常量页脚。
如果它们不存在,我需要终止这个过程,这样我们就不会到达地图****
****如果存在页脚链接,则映射页脚以将名称更改为标签****
const shopLinks=footers.map((footer)=>(
返回{label:footer.name,url:footer.url}
)
const allLinks=shopLinks.concat(mainLinks);
如果不适合您的用例,为什么要坚持使用map,请使用forEace,而不要像下面这样
const { footers = [] } = state.data.item.footerLink;
let dynamicLinkHolder = []
const shopLinks = footers.forEach((footer) => (
if(footer){
dynamicLinkHolder.push({label: footer.name, url: footer.url })
}
)
const allLinks = shopLinks.concat(dynamicLinkHolder);
但是如果footerLinks数据为空怎么办?那么const footers=undefined。如果是这样,您无法映射或forEach。您将得到一个错误。如果没有footerLinks数据,我需要一个故障保护仅返回3个静态链接。如果footerLinks中有数据,那么我需要映射或forEach并将键“name”更改为“label”。const{footers=[]}=state.data.item.footerLink;如果您喜欢上面的内容,可以轻松跳过错误。。。