首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有锚标记的情况下,隐藏div。

在没有锚标记的情况下,隐藏div。
EN

Stack Overflow用户
提问于 2021-03-12 19:55:52
回答 7查看 255关注 0票数 2

我有一个react code (just a snippet, its not a complete code),如下所示,它显示了网页上的程序列表。下面反应代码中的Line A呈现网页上的所有程序列表。

反应代码

代码语言:javascript
复制
const renderPrograms = () => {
    return programs.map((program, index)=>{
        return (
            <a href={program.url} key={index}>
                <div className="program" >
                    <div class="hello-world">{program.name}</div>
                </div >
            </a>
        )
    })
}


return(
<div class="parent-div">
    <div className ="pqr-xyz">  
        <h5>Hello World</h5>            
    </div>
    <div className ="abc-def">  
        <h5>Programs</h5>
        {programs && renderPrograms()}   {/*Line A*/}
    </div>
</div> 
)

上面的react代码在运行时呈现以下html代码

代码语言:javascript
复制
<div class="parent-div">
    <div className ="pqr-xyz">  
        <h5>Hello World</h5>            
    </div>
    <div class="abc-def">
       <h5>Programs</h5>
       <a href="https://www.google.com/">
            <div class="program">  
              <div class="hello-world">TYUV</div>
            </div>
       </a>
       <a href="https://www.twitter.com/">
            <div class="program"> 
              <div class="hello-world">SGHS</div>
            </div>  
       </a>
    </div>
</div>

问题陈述:

Line A不呈现任何内容时,我的div (<div className ="abc-def">)在运行时将如下所示:

代码语言:javascript
复制
<div class="abc-def">   
  <h5>Programs</h5>
</div>

我想知道我需要在上面的反应代码中做什么修改,这样当A行不呈现任何内容时,<div class="abc-def"><h5>Programs</h5></div>就不应该在网页上显示。

EN

回答 7

Stack Overflow用户

发布于 2021-03-15 01:09:18

它们应成为条件的一部分:

代码语言:javascript
复制
return(
    programs.length > 0 && <div className ="abc-def">  
        <h5>Programs</h5>
        {renderPrograms()} 
    </div>
)

我更改了条件以检查长度,否则在空时将得到一个0而不是零

票数 1
EN

Stack Overflow用户

发布于 2021-03-15 19:38:49

试着改变这一行:

代码语言:javascript
复制
    <div className ="abc-def">  
        <h5>Programs</h5>
        {programs && renderPrograms()}   {/*Line A*/}
    </div>

这方面:

代码语言:javascript
复制
    { programs && ( 
        <div className ="abc-def">  
            <h5>Programs</h5>
            {renderPrograms()}   {/*Line A*/}
        </div>
    ) }

现在,如果没有程序,就不会显示任何内容。

票数 1
EN

Stack Overflow用户

发布于 2021-03-12 20:06:52

您可以尝试添加这样的className:

代码语言:javascript
复制
<div className={`abc-def ${programs.length ? "hidden" : ""}`}

也可以从父组件中选择不使用<div>呈现此组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66606394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档