reactjs - React JS - 显示 json 数组中的值的正确方法
问题描述
我需要获取并显示表单文本框中的值。我需要检查该值是否存在且不等于 null 然后在文本框中显示值,否则显示空白字段。
现有的代码实现显示如下:
{
this.state.testJson.Names ? this.state.testJson.Names.length > 0 ? this.state.testJson.Names.map(response =>
<div className="form-group col-md-3" key={response.nameId}>
<label htmlFor="firstName">{Liferay.Language.get('first-name')}</label>
<input name="firstName" value={response.otherName} type="text" className="form-control" id="firstName" />
</div>
):
<div className="form-group col-md-3">
<label htmlFor="firstName">{Liferay.Language.get('first-name')}</label>
<input name="firstName" value='' type="text" className="form-control" id="firstName" />
</div> :
<div className="form-group col-md-3">
<label htmlFor="firstName">{Liferay.Language.get('first-name')}</label>
<input name="firstName" value='' type="text" className="form-control" id="firstName" />
</div>
}
我不知何故觉得这不是实现它的最佳方式,因为我需要避免代码重复。有人能告诉我实现这一目标的更好方法是什么吗?
谢谢
解决方案
你可以在一些卡片里面取
<div className="row">
{!names
? "Loading..."
: names.map((name) => {
return (
<div className="col">
<div className="card-body">
<h5 className="card-title">{name.firstname}</h5>
</div>
</div>
</div>
);
})}
</div>
推荐阅读
- javascript - 使用 jQuery 设置元素的 onclick 属性时遇到问题
- spring-cloud-gateway - 如何为路由设置默认前缀?
- javascript - jQuery滚动到按钮单击中的部分
- ios - 检查应用程序是否通过 iOS 上的今日小部件启动...?
- node.js - 将 Excel 日期转换为 Moment 日期会产生错误的年份输出
- mysql - Grafana 中使用 mysql 数据库制作图形时出现错误 1064
- python - 加载到 pd.DataFrame 时日期时间的奇怪行为
- python-3.x - 超时前未收到 SNMP 响应 - 带有非常基础的示例示例
- wireshark - 使用特定wireshark版本的editcap
- qt - qml:如何格式化列表视图的列