J'ai un composant appelé OrderItem qui prend un objet avec plusieurs objets (au moins deux) à l'intérieur, et les rend comme plusieurs lignes dans une table. Il y aura plusieurs OrderItem composants à l'intérieur de la table. Le problème est que dans la composante de la fonction rendu, je ne peux pas retourner plusieurs lignes. Je ne peux que renvoyer un seul composant, et si je les envelopper dans un div, il est dit " <tr>
ne peut pas apparaître comme un enfant de <div>
"
Le code ressemble à quelque chose comme ceci (j'ai laissé certaines choses pour la lisibilité)
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>
)
}
}
Est il possible que je peux le retour de ces multiples lignes et dans le même tableau, sans les envelopper dans une div et d'avoir une erreur? Je me rends compte que je peux faire un tableau distinct pour chaque composant, mais ça en jette ma mise en forme un peu.