Может быть чище до sort
в функции возврата вместо JSX. Также вам нужно клонировать реквизиты в новый массив, который можно отсортировать.
render() {
const sortedBoard = [...this.props.boards].sort((boardA, boardB) => {
return boardA.id > boardB.id;
});
const sortedRows = sortedBoard.map(board => {
return (
<tr key={board.id}>
<td>{board.id}</td>
<td>{board.author}</td>
<td>{board.title}</td>
<td>{board.created}</td>
<td>{board.updated}</td>
<td>
<button
className="btn btn-danger btn-sm"
onClick={this.props.deleteBoard.bind(this, board.id)}
>
Delete
</button>
</td>
</tr>
);
});
return (
<Fragment>
<h2>Boards</h2>
<table className="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>Author</th>
<th>Title</th>
<th>Created</th>
<th>Updated</th>
<th />
</tr>
</thead>
<tbody>{this.props.boards.length && { sortedRows }}</tbody>
</table>
</Fragment>
);
}
Примечание sort
может быть довольно сложно ...
let a = [ '1', '2', '10', '3' ];
a.sort();
// [ '1', '10', '2', '3' ]
let b = [1, 2, 10, 3];
b.sort((x,y) => { return x-y });
// [ 1, 2, 3, 10 ]