mercredi 4 février 2015

Understanding unique keys for array children in React.js


I'm building a React component that accepts a JSON data source and creates a sortable table.

Each of the dynamic data rows has a unique key assigned to it but I'm still getting an error of:



Each child in an array should have a unique "key" prop.

Check the render method of TableComponent.



My TableComponent render method returns:



<table>
<thead key="thead">
<TableHeader columns={columnNames}/>
</thead>
<tbody key="tbody">
{ rows }
</tbody>
</table>


The TableHeader component is a single row and also has a unique key assigned to it.


Each row in rows is built from a component with a unique key:



<TableRowItem key={item.id} data={item} columns={columnNames}/>


And the TableRowItem looks like this:



var TableRowItem = React.createClass({
render: function() {

var td = function() {
return this.props.columns.map(function(c) {
return <td key={this.props.data[c]}>{this.props.data[c]}</td>;
}, this);
}.bind(this);

return (
<tr>{ td(this.props.item) }</tr>
)
}
});


What is causing the unique key prop error?





Aucun commentaire:

Enregistrer un commentaire