Вот пример того, как ваша таблица будет выглядеть при сборке с react-bootstrap-table-2
:
import BootstrapTable from 'react-bootstrap-table-next';
class Component extends React.Component {
renderColumns () {
return [
{ dataField: 'id', text: 'Id', hidden: true },
{ dataField: 'isSelected', text: 'Selected' },
{ dataField: 'companyName', text: 'Company name' },
{ dataField: 'revenueBucket', text: 'Revenue bucket' },
{ dataField: 'currentYield', text: 'Current Yield' },
{ dataField: 'sector', text: 'Sector' },
]
}
renderRows () {
const { companies, deselectCompany, selectCompany} = this.props
companies.map(company => {
return {
id: company.id,
isSelected: <input type='checkbox' checked={company.isSelected} onChange={() => company.isSelected ? deselectCompany(company.id) : selectCompany(company.id)} />,
companyName: company['Company Name'],
revenueBucket: company['Revenue bucket'],
currentYield: company['Current Yield'],
sector: company['Sector']
}
})
}
render () {
return <BootstrapTable
keyField='id'
data={ this.renderRows(companies) }
columns={ this.renderColumns() }
/>
}
}
Пожалуйста, имейте в виду, что столбец dataField
и ключ строки должны совпадать.И еще один совет - разделять рендеринг столбцов и строк, как я, чтобы избежать путаницы.