Чередующийся фоновый цвет
Я использую реагирующую загрузочную таблицу и пытаюсь чередовать цвет фона. В документации немного неясно, какие именно данные используются для реализации функции условного рендеринга, поэтому я не могу получить правильный результат. Что я делаю неправильно?
// Customization Function
function rowClassNameFormat(row, rowIdx) {
// row is whole row object
// rowIdx is index of row
return rowIdx % 2 === 0 ? 'backgroundColor: red' : 'backgroundColor: blue';
}
// Data
var products = [
{
id: '1',
name: 'P1',
price: '42'
},
{
id: '2',
name: 'P2',
price: '42'
},
{
id: '3',
name: 'P3',
price: '42'
},
];
// Component
class TrClassStringTable extends React.Component {
render() {
return (
<BootstrapTable data={ products } trClassName={this.rowClassNameFormat}>
<TableHeaderColumn dataField='id' isKey={ true }>Product ID</TableHeaderColumn>
<TableHeaderColumn dataField='name'>Product Name</TableHeaderColumn>
<TableHeaderColumn dataField='price'>Product Price</TableHeaderColumn>
</BootstrapTable>
);
}
}
1 ответ
Решение
Вы можете настроить встроенные стили с trStyle
вместо trClassName
, Встроенные стили также должны быть возвращены в виде объекта, а не в виде строки.
пример
function rowStyleFormat(row, rowIdx) {
return { backgroundColor: rowIdx % 2 === 0 ? 'red' : 'blue' };
}
class TrClassStringTable extends React.Component {
render() {
return (
<BootstrapTable data={ products } trStyle={rowStyleFormat}>
<TableHeaderColumn dataField='id' isKey={ true }>Product ID</TableHeaderColumn>
<TableHeaderColumn dataField='name'>Product Name</TableHeaderColumn>
<TableHeaderColumn dataField='price'>Product Price</TableHeaderColumn>
</BootstrapTable>
);
}
}