Ant Design Table 自带的滚动条不太美观,我们来用react-custom-scrollbars插件给它美化一下。

先看一下最终的效果,增加一下信心:

安装 react-custom-scrollbars

不多说了,直接安装插件

npm install react-custom-scrollbars --save

引入滚动条插件和表格组件,写个DataTable组件

注意:

当表格重新渲染的时候,滚动条会重新滚动到顶部,之前滚动的位置会消失。所以我们需要在滚动条停止的时候记下它的位置,当下次更新时,重新定位滚动条的位置。

import React from 'react';
import { Table } from 'antd';
import { Scrollbars } from 'react-custom-scrollbars';// 数据表头
const columns = [{title: '姓名',dataIndex: 'name',key: 'name',},{title: '年龄',dataIndex: 'age',key: 'age',},{title: '住址',dataIndex: 'address',key: 'address',},// 增加空白列{}
];// 滚动条参数
const scroll = {// 如果最终结果表格内容与表格头部无法对齐。// 表格头需要增加空白列,弹性布局width: '100%',// 最大高度,内容超出该高度会出现滚动条height: 100,
}class DataTable extends React.Component{// 滚动结束,记下滚动位置handleScrollStop = () => {if (this.scrollbarsRef.current){this.scrollTop = this.scrollbarsRef.current.getScrollTop();}};componentDidMount() {//  覆盖ant design 自带滚动条样式document.querySelector('.ant-table-scroll > .ant-table-body').style.overflow='hidden';// 滚动条组件ref,重新设置滚动位置this.scrollbarsRef = React.createRef();}// 组件重新渲染,重新设置滚动条的位置componentDidUpdate(prevProps, prevState, snapshot) {if (this.scrollbarsRef.current){this.scrollbarsRef.current.scrollTop(this.scrollTop);}}render() {const dataSource = [{key: '1',name: '胡彦斌',age: 32,address: '西湖区湖底公园1号',},{key: '2',name: '胡彦祖',age: 42,address: '西湖区湖底公园1号',},];// 词法作用域const self = this;// 用react-custom-scrollbars包裹住表格内容const components = {table (props) {const { className } = props;return (<Scrollbars style={scroll}onScrollStop={self.handleScrollStop}ref={ self.scrollbarsRef } ><table className={className}>{ props.children }</table></Scrollbars>)}};return (<TabledataSource={dataSource}columns={columns}// 此scroll选项必须开启,宽高与react-custom-scrollbars插件一致scroll={{y: scroll.height, x: scroll.width}}// 将react-custom-scrollbars组件插入到表格中components={components}/>)}
}export default DataTable;

用react-custom-scrollbars插件美化 Ant Design Table 滚动条相关推荐

  1. React开发(178):ant design table基础用法

    <Table columns={columns} dataSource={data} /> ant design重要的控制表头和数据的对象属性 columns data

  2. React开发(274):ant design table额外展开行

  3. React开发(230):ant design table固定表头

    固定表头 方便一页内展示大量数据.需要指定 column 的 width 属性,否则列头和内容可能不对齐. 如果指定 width 不生效或出现白色垂直空隙, 请尝试建议留一列不设宽度以适应弹性布局,或 ...

  4. React开发(228):ant design table根据宽度自动忽略

  5. React开发(185):ant design table控制居中和宽度

    { title: '冻结金额', type: 'price', dataIndex: 'frozenAmount', align: 'center', width: 80 },{ title: '钱包 ...

  6. React开发(182):ant design table中 带线框的列表

    ReactDOM.render(<Tablecolumns={columns}dataSource={data}borderedtitle={() => 'Header'}footer={ ...

  7. ant design table column 设置width不生效解决方案

    ant design table column 设置width不生效解决方案 参考文章: (1)ant design table column 设置width不生效解决方案 (2)https://ww ...

  8. Ant Design Table columns 参数配置隐藏列方法

    Ant Design Table columns 参数配置隐藏列方法 const columns = [{title: '姓名',dataIndex: 'name',key: 'name',// 隐藏 ...

  9. Ant Design table实现表头列宽拖拉 官方 vue-draggable-resizable的魔改版

    Ant Design table实现表头拖拽 官方 vue-draggable-resizable的魔改版 这里顺便也说一下使用官方vue-draggable-resizable组件,可能也有人不喜欢 ...

  10. Ant Design Table修改滚动条样式

    Ant Design Table修改滚动条样式 目录 一.目的 二.步骤 1.了解滚动条的组成部分 2.样式修改 3.实现效果 二.总结 目录 一.目的 修改Ant表格的固定列滚动而产生的滚动条样式, ...

最新文章

  1. ADO.NET连接SQL Server数据库
  2. c语言小学生算法,急求:C语言小学生算法练习软件实现的任务:面向小学生,随机选择两个整数进行加、减、乘、除,要求学生解答。设计内容:1、电...
  3. POJ2060最小路径覆盖
  4. [安全攻防进阶篇] 七.恶意样本检测之编写代码自动提取IAT表、字符串及时间戳溯源
  5. 前端学习(1684):前端系列实战课程之判断游戏结束
  6. Linux进程O(1)调度算法,面试必考哦
  7. P5733 【深基6.例1】自动修正(C++、python代码)
  8. Underlay网络:如何立住可靠又支持大规模无收敛的“人设”
  9. C# js asp.net 字符串MD5加密GetMD5Hash
  10. php 交换函数,php用于反转/交换数组中的键名和对应关联的键值的函数array_flip()...
  11. python从mongodb里取出数据进行可视化_Python数据分析及可视化实例之MongoDB增删改查...
  12. 抬头遇见图灵奖得主和全球顶尖科学家?超豪华阵容智源大会求带我一个!
  13. Spark1.0新特性--Spark SQL
  14. 「05」回归的诱惑:一文读懂线性回归
  15. mysql 嵌套查询优化_MySQL——优化嵌套查询和分页查询
  16. PHP将uncode转utf8,一行代码解决问题
  17. 数据库的增、删、改、查例子
  18. [转]CreateDIBitmap与CreateDIBSection
  19. Android蓝牙手柄开发
  20. Kal设置启动时输出日志,不显示logo

热门文章

  1. java工资多少 程序员薪资很高吗?
  2. Java 和python多态区别_python面向对象之多态鸭子类型与Java的比较
  3. Google Dapper 大规模分布式系统的跟踪方案
  4. Python 获取每月的工作日天数 (法定假+周末)天数
  5. 小白 Linux 云计算怎么学,都要学什么?---超详细---
  6. matlab 三元三次方程,使用MATLAB求解3元3次方程组的问题
  7. 基于RSelenium爬取中国裁判文书网文书数据
  8. 【Java工具类】中文转换成汉语拼音工具-pinyin4j
  9. IBM深陷云计算业务欺诈丑闻,遭股东集体诉讼
  10. 【论文写作】投稿心路