You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ant Design表格中根据偶数数据索引设置列背景色

给Ant Design表格偶数索引行设置背景色的实现方案

要实现这个需求很简单,Ant Design的Table组件自带了rowClassName属性,我们可以利用它根据行的索引动态添加类名,再通过CSS设置背景色。下面是具体的实现步骤,结合你的代码来修改:

步骤1:定义行类名生成函数

首先写一个函数,接收行记录和索引作为参数,判断索引是否为偶数(注意索引从0开始),返回对应的类名:

// 生成行的类名,偶数索引返回even-row类
const getRowClassName = (record, index) => {
  return index % 2 === 0 ? 'even-row' : '';
};

步骤2:在Table组件中使用rowClassName属性

把上面的函数传递给Table的rowClassName属性,这样每一行都会根据索引得到对应的类名:

<Table
  columns={columns}
  dataSource={dataSource}
  pagination={{ pageSize: 10 }}
  rowClassName={getRowClassName} {/* 新增这个属性 */}
/>

步骤3:添加CSS样式设置背景色

最后在你的样式文件(或者内联样式)中给even-row类设置背景色:

.even-row {
  background-color: #f8f9fa; /* 这里可以换成你想要的任何颜色 */
}

额外优化:修正你的数据更新逻辑

注意到你在useEffect里直接调用setDataSource(list),但dispatch(getData(token))是异步操作,这时候list可能还没更新,导致dataSource是空的。建议你单独监听list的变化来更新dataSource:

const [dataSource, setDataSource] = useState([])
const { list } = useSelector((state) => state.userData)

useEffect(() => {
  dispatch(getData(token))
  dispatch(getDataofFormularyDrug(0))
}, [])

// 当list更新时,同步更新dataSource
useEffect(() => {
  setDataSource(list)
}, [list])

这样就能确保表格的数据是最新的,同时偶数行的背景色也能正确应用啦。

内容的提问来源于stack exchange,提问作者Sami ullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:49:06