我有一个名为 OrderItem 的组件,它接受一个包含多个对象(至少两个)的对象,并将它们呈现为表中的多行。表内将有多个 OrderItem 组件。问题是在组件的渲染函数中,我不能返回多行。我只能返回单个组件,如果我将它们包装在一个div,它说:“<tr>
不能作为一个孩子<div>
”
代码看起来像这样(为了更容易阅读,我省略了一些东西)
Parent() {
render() {
return (
<table>
<tbody>
{
_.map(this.state.orderItems, (value, key) => {
return <OrderItem value={value} myKey={key}/>
})
}
</tbody>
</table>
)
}
}
class OrderItem extends React.Component {
render() {
return (
<div> // <-- problematic div
<tr key={this.props.myKey}>
<td> Table {this.props.value[0].table}</td>
<td> Item </td>
<td> Option </td>
</tr>
{this.props.value.map((item, index) => {
if (index > 0) { // skip the first element since it's already used above
return (
<tr key={this.props.myKey + index.toString()}>
<td><img src={item.image} alt={item.name} width="50"/> {item.name}</td>
<td>{item.selectedOption}</td>
</tr>
)
}
})}
</div>
)
}
}
有没有办法可以返回这些多行并将它们放在同一个表中,而不会将它们包装在 div 中并出现错误?我意识到我可以为每个组件制作一个单独的表格,但这会使我的格式有点偏离。