react antd 更改table 表头和表行样式

这篇博客展示了如何在React项目中利用Ant Design的Table组件,结合自定义CSS样式,实现表格行的奇偶交替颜色效果以及表头的定制化背景。通过设置`rowClassName`属性,动态地为表格行应用样式,并通过`!important`确保表头样式的优先级。此外,还给出了具体的代码实现和调用方式。
摘要由CSDN通过智能技术生成

我这里以组件的形式来提供code

使实例正确运行至少需要以下知识:

1 创建react项目(本实例基于react项目)

2 知道如何导入和调用组件

样式效果如下图:

        

 

实现方法

目录结构:

 

YMCollapse.css 样式文件code如下

/* 行样式1 */

.oddRow {

    background: LightCyan;

  }

/* 行样式2 */

.evenRow {

    background: PowderBlue;

  }

/* 表头样式

!important 将权重加到最大,否则可能不生效。

但是缺点是项目中的所有的表头都将变成改样式 */

.ant-table-thead > tr >th{

    background: #FFE4B5  !important; 

}

YMCollapse.jsx code如下

import React, { Component } from 'react'

import { Table } from 'antd';

import {  Col, Row  } from 'antd'

import './YMCollapse.css' //导入我们自己的样式文件

// 为了节约文件行收缩了columns 和 data的格式

const columns = [ { title: <strong>DCN</strong>,dataIndex: 'dcn', key: 'dcn', },

    { title: <strong>Dev</strong>, dataIndex: 'dev',key: 'dev', },

    { title: <strong>Title</strong>, dataIndex: 'title',key: 'title', }, ]

const data = [ { key: "1",dcn: 'dcn1',dev: 'a', title:"test dcn1", },

    { key: "2",dcn: 'dcn2',dev: 'b', title:"test dcn2", },

    { key: "3",dcn: 'dcn3',dev: 'c', title:"test dcn3", },

    { key: "4",dcn: 'dcn4',dev: 'd', title:"test dcn4", }, ]

export default class QTICollapse extends Component {

    // 通过 getRowClassName函数修改样式

    getRowClassName = (record, index) => {

        let className = ''

        // oddRow 和 evenRow为我们css文件中的样式名称

        className = index % 2 === 0 ? "oddRow" : "evenRow"

        return className

      }

    render() {

        return (

        <Row>

            <Col span={4}></Col>

            <Col span={8}>

                <Table

                    columns={columns} 

                    dataSource={data} 

                    pagination={false}

                    rowClassName={this.getRowClassName} //rowClassName 行样式修改属性

                    />

            </Col>

            <Col span={4}></Col>

        </Row>

            

        )

    }

}

组件调用:

import YMCollapse from '....../YMCollapse/YMCollapse' //导入组件

<YMCollapse/> //调用组件

React Ant Design 中,使用 `rowClassName` 属性可以为表格的每一行添加样式。具体实现方法如下: 1. 首先,在表格组件中设置 `rowClassName` 属性,值为一个回调函数。 2. 回调函数接收一个参数,即当前行的数据对象,可以根据这个数据对象来判断应该为当前行添加哪些样式。 3. 在回调函数中返回一个字符串,字符串即为添加给当前行的样式类名。 下面是一个简单的例子: ```jsx import React from 'react'; import { Table } from 'antd'; const dataSource = [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', }, { key: '2', name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park', }, { key: '3', name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park', }, ]; const rowClassName = (record, index) => { if (index % 2 === 0) { return 'even-row'; } else { return 'odd-row'; } }; const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', }, { title: 'Age', dataIndex: 'age', key: 'age', }, { title: 'Address', dataIndex: 'address', key: 'address', }, ]; const App = () => { return <Table dataSource={dataSource} columns={columns} rowClassName={rowClassName} />; }; export default App; ``` 在上面的例子中,我们定义了一个回调函数 `rowClassName`,该函数接收两个参数:`record` 表示当前行的数据对象,`index` 表示当前行的索引。在该函数中,我们判断当前行的索引是否为偶数,如果是偶数,就返回样式类名 `even-row`,否则返回样式类名 `odd-row`。最后将该函数作为 `rowClassName` 属性传递给 `Table` 组件,即可实现为表格的每一行添加背景色的效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值