React.js错误;相邻的JSX元素必须被封装在一个封闭标记“中;
React.js Error "Adjacent JSX elements must be wrapped in an enclosing tag"
我有下面的代码是react.js,它抛出了一个错误
"相邻的JSX元素必须包装在一个封闭标记中"。React似乎不接受相邻的相同标签。我该如何显示表格数据?
var TestRecords = React.createClass({
render: function() {
return(
<table>
<tr>
{this.props.records.map(record=>{
return <td>{record.title}</td><td>record.id</td>
}
)}
</tr>
</table>
);
}
});
使用React,您只能向组件树提供两件事——节点(元素)或节点集合。
这里提供了两个节点(两个td
)。您需要将它们封装在tr
中,或者将它们作为数组(具有key
属性)返回。在这个例子中也不太理想,因为您的生成器可能首先应该包含tr
。
尝试
return (
<table>
{this.props.records.map(record => ( // implicit return
<tr key={record.id}>
<td>{record.title}</td>
<td>{record.id}</td>
</tr>
)}
</table>
)
你能试试下面的方法吗,
var TestRecords = React.createClass({
render: function() {
return(
<table>
<tr>
{this.props.records.map(record=>{
return
<tr>
<td>{record.title}</td>
<td>record.id</td>
</tr>
}
)}
</tr>
</table>
);
}
});
错误是因为映射试图返回两个td
元素。这可能是错误的原因
我已经遇到过几次了,只需执行以下操作:我喜欢在"return"中保留尽可能多的逻辑。只是一种偏好。
var TestRecords = React.createClass({
render: function() {
var trDisplay = this.props.records.map((record, idx)=>{
return(
<tr key={idx}>
<td>{record.title}</td><td>{record.id}</td>
</tr>
}
)}
return(
<table>
{trDisplay}
</table>
);
}
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- 将两个express应用程序封装在一个应用程序中
- React.js错误;相邻的JSX元素必须被封装在一个封闭标记“中;
- 如何将 $http.put 封装到一个函数中,该函数执行某些操作,然后返回通过或失败的承诺
- 为什么我要在jQuery(function ($) { });中封装一个jQuery函数
- 创建一个封装角度 js 功能的实用程序模块
- 将html元素封装在另一个元素中
- 自定义控件——如何在另一个控件中封装聚合
- 在onclick事件中将一个函数封装在另一个函数中究竟意味着什么?
- 将一个函数封装在另一个函数中