When rendering content with JSX, you have to remember that render method can only return one root node. This makes populating table rows a little tricky. For example, the following code would be invalid:
renderRows() {
return (
<tr>
<td>
Item 3
</td>
</tr>
);
}
render() {
return (
<tr>
<td>
Item 1
</td>
<td>
Item 2
</td>
</tr>
{this.renderRows()}
);
This is invalid because render contains two root nodes (two tr’s). You’ll see the following error occur:
Uncaught Error: Parse Error: Line 27: Unexpected identifier
To get around this limitation, you need to wrap the content in a new root node. Typically you would use a div for this purpose, but this wouldn’t be valid HTML within a table so the only solution is to use a tbody tag like so:
renderRows() {
return (
<tr>
<td>
Item 3
</td>
</tr>
);
}
render() {
return (
<tbody>
<tr>
<td>
Item 1
</td>
<td>
Item 2
</td>
</tr>
{this.renderRows()}
</tbody>
);


