【问题标题】:How can I pass a className to the Header of a Table in antd / Ant Design?如何在 antd / Ant Design 中将 className 传递给表的表头?
【发布时间】:2018-08-10 23:03:12
【问题描述】:

使用 Ant 设计表,我可以使用 rowClassName 属性将 className 传递给任意行:

rowClassName={(record, index) => index === 0 && 'headerClassName'}

有什么方法可以用 Header 做到这一点吗?

【问题讨论】:

标签: reactjs antd


【解决方案1】:

对于列对象数组中的标题键,将字符串更改为反应节点..

我们可以使用这种方式对标题文本进行自定义样式,但这并不能完全解决问题,

只是一个示例

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' }]

【讨论】:

    【解决方案2】:

    在样式表方面,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'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2021-07-03
      相关资源
      最近更新 更多