【发布时间】:2018-08-10 23:03:12
【问题描述】:
使用 Ant 设计表,我可以使用 rowClassName 属性将 className 传递给任意行:
rowClassName={(record, index) => index === 0 && 'headerClassName'}
有什么方法可以用 Header 做到这一点吗?
【问题讨论】:
-
拍摄... onHeaderRow className
使用 Ant 设计表,我可以使用 rowClassName 属性将 className 传递给任意行:
rowClassName={(record, index) => index === 0 && 'headerClassName'}
有什么方法可以用 Header 做到这一点吗?
【问题讨论】:
对于列对象数组中的标题键,将字符串更改为反应节点..
我们可以使用这种方式对标题文本进行自定义样式,但这并不能完全解决问题,
只是一个示例
columns = [
{ title: <div style={{ background: "#01bcd4" }}>Full Name:</div>, width: 100, dataIndex: 'name', key: 'name', fixed: 'left'},
{ title: <div style={{ background: "#01bcd4" }}>Presets:</div>, width: 100, dataIndex: 'age', key: 'age', fixed: 'left' }]
【讨论】:
在样式表方面,CSS 似乎相当棘手,antd Table 是使用常规 HTML 表构建的(顶部带有逻辑糖)。不可能将className 传递给带有antd 的表的标题,但如果可以的话,这似乎也不是最有用的。
相反,解决方案是将className 作为一个整体传递给Table,并具有如下CSS 以设置标题样式。
import React from 'react';
import { Table } from 'antd';
import { css } from 'react-emotion';
const tableCSS = css({
margin: '40px 120px',
backgroundColor: 'white',
'& table': {
borderCollapse: 'collapse'
},
'& thead > tr > th': {
backgroundColor: 'darkblue',
color: 'white',
},
'& thead > tr': {
borderWidth: '2px',
borderColor: 'yellow',
borderStyle: 'solid'
}
});
const StyledTable = ({ data, columns }) => (
<Table
className={tableCSS}
dataSource={data}
columns={columns}
/>
);
注意:如果你想在标题行周围有一个边框,你只需要borderCollapse: 'collapse'。
【讨论】: