javascript - 在 react.js 的 JSX 中转义 .map() 中的值
问题描述
我正在尝试使用.map()
. 我需要转义一个值。我的代码如下
let modalrows = Object.keys(this.props.element).map((item,index) => (
if(item !== 'id') { //I am getting error in this line
<tr key={index}>
<td className="ui header data_type">
{item === 'name'? 'Name':null}
</td>
<td>{this.props.element[item]} <span>Edit</span></td>
</tr>
}
));
解决方案
您需要一个大括号来开始一个代码块。现在您尝试if
在返回表达式中使用。用大括号固定:
let modalrows = Object.keys(this.props.element).map((item, index) => {
if (item !== "id") {
return (
<tr key={index}>
<td className="ui header data_type">
{item === "name" ? "Name" : null}
</td>
<td>
{this.props.element[item]} <span>Edit</span>
</td>
</tr>
);
}
});
或者,您可以使用filter
首先过滤掉不必要的元素:
let modalrows = Object.keys(this.props.element)
.filter(item => item !== "id")
.map((item, index) => (
<tr key={index}>
<td className="ui header data_type">{item === "name" ? "Name" : null}</td>
<td>
{this.props.element[item]} <span>Edit</span>
</td>
</tr>
));
推荐阅读
- android - Flutter NFC 应用程序:如何禁用其他 NFC 应用程序?
- kubernetes - 如何获取kubernetes集群的所有默认用户组
- r - 使用 TOC 导出到 html 后,代码单元格不会折叠
- flutter - 如何向 textFormFields 添加超过 1 个值?
- linux - open_by_handle_at(2) 的用途是什么?
- text - 使用 unicode 文本编码压缩请求标识符
- keyboard - 如何使用键盘箭头键在 gliffy 图中移动形状?
- github - 在虚拟机上本地启动构建后,自动化测试无法在 GitHub Actions 上运行
- fortran - 在 Fortran DLL 中调用 RANDOM_NUMBER
- python - 一些 api 端点,包括部署在 IIS 上的烧瓶应用程序上的谷歌存储代码,其行为完全不同