javascript - 遍历数组以渲染没有 div 元素的动态数据
问题描述
{ Object.keys(props.data).map((key, value) => {
return(
<div>
<dt className="col-sm-3">{key}</dt>
<dd className="col-sm-9">{props.data[key]}</dd>
</div>
)
})}
上面的代码创建了以下内容:
Key
Value
在没有 div 包装器元素的情况下对上述内容进行硬编码时,我得到:
Key value
完整的代码块:
<div className="row">
<div className="col-lg-6">
<div className="mb-5">
<h5 className="text-black">
<strong>{props.title}</strong>
</h5>
<dl className="row">
<dt className="col-sm-3">A</dt>
<dd className="col-sm-9">A</dd>
</dl>
</div>
</div>
</div>
所以我的问题是 div 包装器元素,有没有办法使用 map 来呈现动态数据而不返回 div 包装器元素?
解决方案
从语义上考虑,用 包装是个好主意dl
:
return(
<dl>
<dt className="col-sm-3">{key}</dt>
<dd className="col-sm-9">{props.data[key]}</dd>
</dl>
)
但是查看您已经定义的代码dl
以及您正在使用该组件的内部代码?
如果您不喜欢上述解决方案,那么您应该使用React.Fragment:(尽可能使用上述解决方案)
return(
<> {/* alias for React.Fragment */}
<dt className="col-sm-3">{key}</dt>
<dd className="col-sm-9">{props.data[key]}</dd>
</>
)
啊,你还需要提供key
道具:
<dl key={key}>
或者,使用片段:
<React.Fragment key={key}>
以下是无效使用:(速记方法不支持任何道具)
<key={key>
</>
推荐阅读
- javascript - c#asp.net javascript函数不起作用
- fortran - ifort:关于 -fallow-argument-mismatch 的命令行警告
- spacy - 在 spaCy v3 中使用基本模型训练自定义 NER 组件
- java - Spring Batch中的自动装配返回null
- python - 如何使用 Python 或 R 脚本下载 web 表格
- python - 如何在张量流中实现动态增强?
- python - 周/月/季度结束前 N 天的最大值
- kotlin - 如何知道某个视图项是否可见
- python - 如何根据他们的 id 和位置对基因进行分组,python
- npm-install - 在 Windows 中安装 @wdio/cucumber-framework 时出现长时间错误