【React】React中如何修改antd 5 table组件滚动条样式

项目场景:

新项目使用了Antd 5,在使用表格时发现滚动条样式变成了浏览器的默认滚动条样式。因为之前一直在用Antd 4.* 版本,最初我以为是新项目中某个样式出现了问题造成的,翻阅文档发现是Antd5开始Table的滚动条需要手动设置。


问题描述

根据文档来看,Table在使用滚动条的样例中都单独设置的Table的className。单独安装了一个antd-style的包,但是安装之后报错Property 'antCls' does not exist on type 'FullToken'.typescript(2339)

import React from 'react';
import { Table } from 'antd';
import type { TableColumnsType } from 'antd';
import { createStyles } from 'antd-style';

const useStyle = createStyles(({ css, token }) => {
  const { antCls } = token;
  return {
    customTable: css`
      ${antCls}-table {
        ${antCls}-table-container {
          ${antCls}-table-body,
          ${antCls}-table-content {
            scrollbar-width: thin;
            scrollbar-color: #eaeaea transparent;
            scrollbar-gutter: stable;
          }
        }
      }
    `,
  };
});

const App: React.FC = () => {
  const { styles } = useStyle();
  // !!!!!省略了columns和dataSource代码,太多了!!!!!- start
  const columns: any;
  const dataSource: any;
  // !!!!!省略了columns和dataSource代码,太多了!!!!!- end
  return (
    <Table<DataType>
      className={styles.customTable}
      columns={columns}
      dataSource={dataSource}
      bordered
      size="middle"
      scroll={{ x: 'calc(700px + 50%)', y: 47 * 5 }}
    />
  );
};

export default App;

解决方案:

直接使用global.css来覆盖Antd的样式来解决

.ant-table-body,
.ant-table-content {
	scrollbar-width: thin;
    scrollbar-color: #eaeaea transparent;
    scrollbar-gutter: stable;
}

这里采用的样式是和antd文档上一致的样式,可以根据自己需要的进行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值