javascript - jsx中的条件输出HTML
问题描述
我正在尝试更改一些目前只是循环并输出 jsx 的 jsx,当我尝试根据数组对象中的值将循环更改为输出时,我在代码中遇到错误,因为它与我尝试的方式一样输出html。
数组中有一个名为 Group 的值,如果组名与上一个组名不同,则输出一个标签以显示新组名
我必须开始的是..
<Container className="float-left">
{
this.Store.SearchResults.map( template =>
<TemplateCard
key={template.Name}
....
>
{ template.Name }
</TemplateCard>)
}
</Container>
我想做的是...
<Container className="float-left">
{
this.Store.SearchResults.map( template =>
{
var lastGroup;
if(template.Group !== lastGroup ){
// output group name
<div>
<Label>{template.Group}</Label>
</div>
}
}
<TemplateCard
key={template.Name}
....
>
{ template.Name }
</TemplateCard>)
}
</Container>
这给出了错误.. - 意外的令牌,预期的“,”
解决方案
您可以使用三元运算符,如果条件为真则呈现 div,否则呈现 null:
{template.Group !== lastGroup ?
<div>
<Label>{template.Group}</Label>
</div>
: null}
推荐阅读
- angular - 无法从 HTTP 响应访问授权标头
- ruby - 我试过用常量参数名称在 ruby 中定义一个函数,为什么会抛出错误?
- google-colaboratory - google-colab 自动完成中的不同符号是什么意思?
- java - 拥有一个只调用被覆盖的超类方法的子类方法有什么好处吗?
- vb.net - 来自 Cratejoy 的嵌套 JSON 的反序列化
- react-native - 使用 componentDidUpdate 动态更改 React 组件中的选定日期
- jquery - 以 HTML 格式发布 SOAP 请求并获得响应
- php - PHP 只获取 JSON 结果的第一页
- python - 为什么 Python 说这两个分数是一样的?
- php - Apache 是否可以在 Windows 上的特定目录中运行不同版本的 PHP?