I want to do treeview rendering in React. I have TreeNode
class, which does recursively renders children. So basically I want to go like this:
class TreeNode extends React.Component {
render() {
let nestedLevel = this.props.level || 0;
let childNodes = this.props.node.childNodes.map(function(node, index) {
return <TreeNode key={index} node={node} level={nestedLevel+1} />
});
let identationMargin={margin: (nestedLevel*16)+"px"};
return (
<tr className="treeview-row">
<td><span style={identationMargin} />User {this.props.node.name}</td>
</tr>
{childNodes}
);
}
}
As you alredy see, there is an error in return, sadly I have to return only one element, like div or so. But when it comes to table jsx seems to feel pretty sick. How to get out of situation?
Here is a question about multiple tbody, but.. "how can we put a tbody into another tbody then?"
Or should I first populate array of "rows" in js, and then render them in a single return (in a second component), eg:
class TreeView render() {
rows=[];
for(node of allNodes)
rows.push(<TreeNode node={node}>);
return (
<table>
<tbody>
{ rows }
...
What is a typical common practice, to go with?