React 仅显示存在的数组属性的组件

问题描述 投票:0回答:2

我只想显示以下组件(如果它们的 href 属性存在):

 <ExternalLinks href={source}>Code</ExternalLinks>
 <ExternalLinks href={download}>Download</ExternalLinks>
 <ExternalLinks href={visit}>Website</ExternalLinks>

这是数组,例如,如果数组对象不存在下载和访问属性,那么我不希望它们出现。

    title: '',
    description: "",
    image: '/images/ethereumcampaign.png',
    tags: ['React', 'Node.js', 'Solidity'],
    href: "/campaigns",
    //download: 'https://google.com',
    source: '',
    //visit: "",
    id: 0,

谢谢:)

reactjs http web
2个回答
1
投票

有2种方法:

  1. 过滤:

        {tags.filter((tag) => tag.download && tag.visit).map((tag, i) => (
            <Tag key={i}>{tag.title}</Tag>
            <Tag key={i}>{tag.description}</Tag>
            ...
          ))}
      </TagList>
    
    
  2. 使用反引号(``):

        {tags.map((tag, i) => (`
          ${tag.visit && tag.download ? <Tag key={i}>{tag}</Tag> : ""}
       `))}
      </TagList>
    

0
投票

在进行映射之前过滤您的数据,

hasOwnProperty()
确定
presence
properties
下载并在您的
tag
对象中访问:

   <TagList>
        {tags
          .filter((tag) => tag.hasOwnProperty('download') && tag.hasOwnProperty('visit'))
          .map((tag, i) => (
            <Tag key={i}>{tag}</Tag>
          ))}
      </TagList>
© www.soinside.com 2019 - 2024. All rights reserved.