React|antd中table表格奇偶行设置不同样式(颜色交替)

前言 在做antd表格时通常会用到table组件,如何修改antd组件的默认样式想必大家都知道,那么我们如何将表格的奇数行和偶数行设置为不同样式呢,如下图所示
React|antd中table表格奇偶行设置不同样式(颜色交替)
文章图片

react中覆盖antd组件的样式
渲染时给奇偶行设置不同类名 利用Table组件官方API接口修改行的类名,通过类名设置不同行的样式.
js文件TableChangeDom.js
/** * @file 列表奇偶行设置不同样式; 渲染时给奇偶行设置不同类名 * */import React from "react"; import { Table } from 'antd'; import styles from "./TableChangeDom.less"; const dataSource = [ { key: '1', name: '张三', age: 32, address: '西湖区', }, { key: '2', name: '李四', age: 42, address: '下城区', }, { key: '3', name: '王五', age: 52, address: '上城区', }, { key: '4', name: '赵六', age: 26, address: '余杭区', }, { key: '5', name: '胡彦祖', age: 29, address: '萧山区', }, ]; const columns = [ { title: '序号', render: (text, record, index) => `${index + 1}`, }, { title: '姓名', dataIndex: 'name', key: 'name', }, { title: '地址', dataIndex: 'address', key: 'address', }, { title: '年龄', dataIndex: 'age', key: 'age', }, ]; class TableChangeDom extends React.Component {/** * @function 获取表格行的类名 * @param {array} record 当前行数据 * @param {number} index 当前行索引 * @return {string} className 类名 * */ getRowClassName = (record, index) => { let className = ''; className = index % 2 === 0 ? styles.oddRow : styles.evenRow; return className; }render() { // const { className, ...otherProps } = this.props; return (
); } }; export default TableChangeDom;
css文件TableChangeDom.less
.root { .oddRow { background-color: #fff; } .evenRow { background-color: #c0c0c0; } }

通过CSS选择器为奇偶行设置不同样式 使用 :nth-child(n)选择器匹配奇偶行元素并为其设置不同样式
js文件TableChangeCss.js
/** * @file 列表奇偶行设置不同样式; 通过CSS选择器为奇偶行设置不同样式 * */import React from "react"; import { Table } from 'antd'; import styles from "./TableChangeCss.less"; const dataSource = [ { key: '1', name: '张三', age: 32, address: '西湖区', }, { key: '2', name: '李四', age: 42, address: '下城区', }, { key: '3', name: '王五', age: 52, address: '上城区', }, { key: '4', name: '赵六', age: 26, address: '余杭区', }, { key: '5', name: '胡彦祖', age: 29, address: '萧山区', }, ]; const columns = [ { title: '序号', render: (text, record, index) => `${index + 1}`, }, { title: '姓名', dataIndex: 'name', key: 'name', }, { title: '地址', dataIndex: 'address', key: 'address', }, { title: '年龄', dataIndex: 'age', key: 'age', }, ]; class TableChangeCss extends React.Component { render() { return (
); } }; export default TableChangeCss;
css文件TableChangeCss.less
.root { :global { h1.ant-typography, .ant-typography h1 { margin-top: 0.5em; } } }

以上例子的GitHub地址 【React|antd中table表格奇偶行设置不同样式(颜色交替)】react-demo
参考资料 antd-table组件
CSS3 :nth-child() 选择器

    推荐阅读