我有一个react code
(just a snippet, its not a complete code)
如下所示,显示了网页上的程序列表。Line A
在下面的React代码呈现网页上的所有程序列表。
- React代码**:
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代码:
<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">
)在运行时将如下所示:
<div class="abc-def">
<h5>Programs</h5>
</div>
我想知道我需要在上面的react代码中做些什么修改,这样当A行不呈现任何内容时,<div class="abc-def"><h5>Programs</h5></div>
就不会显示在网页上。
7条答案
按热度按时间jbose2ul1#
它们应该是条件的一部分:
我更改了条件以检查长度,否则,当为空时,您将得到
0
而不是空值wz8daaqr2#
尝试更改以下行:
变成这样:
现在没有程序什么都不显示。
cetgtptt3#
您可以尝试像这样添加className:
或者从父组件中,可以选择不使用
<div>
呈现此组件dohp0rv54#
除了尝试使用CSS隐藏它之外,您还可以通过从函数中不返回任何内容来选择根本不呈现它
5t7ly7z55#
您可以尝试将类放在模板字符串中,并使用三元运算符在某些状态值为真时显示某个类。
v09wglhw6#
下面是一个完整的解决方案,您所需要做的就是将
<h5>Programs</h5>
移到条件中,并稍微修改条件,如下面的代码片段所示。注意,我还修改了
RenderPrograms
函数以接受参数。以下是完整的片段。
x一个一个一个一个x一个一个二个x
bwitn5fc7#
你需要把程序的渲染移到RenderPrograms组件中。使RenderPrograms组件purelu具有功能性,并通过props(而不是使用function)将数据传递给它。
然后使用
RenderPrograms
渲染main组件中的程序(带有logis的组件用于加载程序)。您可以随意使用此sandbox