React Ant-Table Resizable 实现对Table表格的列的宽度调整_react-resizable table中使用-程序员宅基地

技术标签: Ant Design  React  

import React from "react";
import {
     Widget } from "erpcore";
import {
     Table } from 'antd';
import "./index.less";
import {
     Resizable } from 'react-resizable';
import 'react-resizable/css/styles.css';


const WidgetOfBase = Widget.WidgetOfBase;
const ResizeableTitle = (props) => {
    
    const {
     onResize, width, ...restProps } = props;
    if (!width) {
    
        return <th {
    ...restProps} />
    }
    return (
        <Resizable
            width={
    width} height={
    0} onResize={
    onResize}>
            <th {
    ...restProps} />
        </ Resizable >
    )
};

class ReactTable extends WidgetOfBase {
    
    constructor(props) {
    
        super(props);
        this.state.columns = props.rcColumns;
    };

    components = {
    
        header: {
    
            cell: ResizeableTitle,
        },
    };

    handleResize = index => (e, {
     size }) => {
    
        const {
     tableKey } = this.props;
        this.setState(({
     columns }) => {
    
            const nextColumns = [...columns];
            nextColumns[index] = {
    
                ...nextColumns[index],
                // width: (size.width < 50) ? 50 : size.width,
                width: size.width,
            };
            console.log(nextColumns)
            if (tableKey) {
    
                localStorage.setItem(tableKey, JSON.stringify(nextColumns))
            }

            return {
     columns: nextColumns };
        });
    };

    renderOnMobile = () => {
    
        const {
     dataSource, pagination, selectedRowKeys, onSelectChange } = this.props;
        const columns = this.state.columns.map((col, index) => ({
    
            ...col,
            onHeaderCell: (column) => ({
    
                width: column.width,
                onResize: this.handleResize(index),
            }),
        }));
        const rowSelection = {
    
            selectedRowKeys,
            onChange: onSelectChange,
        };
        return (
            <div className="rc_table">
                <Table
                    columns={
    columns}
                    components={
    this.components}
                    dataSource={
    dataSource}
                    pagination={
    pagination}
                    size="middle"
                    rowSelection={
    rowSelection}
                    scroll={
    {
     x: true }}
                />
            </div>
        )
    }
}

export default ReactTable;


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40958876/article/details/116756905

智能推荐

mysql load character_mysql load data Invalid utf8mb4 character string: ”-程序员宅基地

文章浏览阅读3.2k次。使用mysql的 load data 导入数据到 数据库中:LOAD DATA LOCAL INFILE '/tmp/2982/20200424/user.csv'INTO TABLE t_user CHARACTER SET utf8mb4 FIELDS TERMINATED BY ','LINES TERMINATED BY '\r\n'IGNORE 1 LINES(userName, use..._invalid utf8mb4 character string:

Java中的Map解析:探索键值对的奇妙世界_map键值对-程序员宅基地

文章浏览阅读543次。本文将深入解析Java中的Map接口及其常见实现类,详细介绍基本概念、常用方法、不同实现类的特点以及适用场景,帮助读者全面了解和灵活应用Map在Java编程中的威力。通过了解Map的基本概念、常用方法和不同实现类的特点,读者可以更加全面地理解和应用Map在Java编程中的重要性。因为TreeMap是有序的,所以在需要按照键的顺序访问的场景下非常有用。在Java中,有多个常见的Map实现类,每个实现类都有自己的特点和适用场景。根据具体的需求和场景,可以选择合适的Map实现类和相应的操作方法。_map键值对

编程实现下列功能:假设以两个元素依值非递减有序排列的顺序表A和B 分别表示两个集合(同一表中的元素值各不相同),求一个新的集合C=A-B,且表C中的元素也是依值递增有序排列。_建立两个按数据元素值非递减有序排列的线性表a和b,均以顺序表作为存储结构-程序员宅基地

文章浏览阅读3.1k次。编程实现下列功能:假设以两个元素依值非递减有序排列的顺序表A和B 分别表示两个集合(同一表中的元素值各不相同),求一个新的集合C=A-B,且表C中的元素也是依值递增有序排列。# include <stdio.h># include <stdlib.h># define initsize 20//初始分配量# define LISTINCREMENT 5//分配增量..._建立两个按数据元素值非递减有序排列的线性表a和b,均以顺序表作为存储结构

java readutf()方法,java socket writeUTF()和readUTF()-程序员宅基地

文章浏览阅读207次。I've been reading some Java socket code snippet and fonund out a fact that in socket communication, to send messages in sequence, you don't have to seperate them by hand, the writer/reader stream do t..._java socket writeutf

ssh远程登录_ssh登录命令-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏7次。l 指定登录名称;基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs。服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:kgc。3)客户端得到服务端的信息后,通过算法生成密钥,结合自己的公钥生成密钥对,然后将密钥对发送给服务端。5)最后,客户端拥有自己的公钥和私钥以及服务端的公钥,服务端拥有自己的公钥和私钥以及客户端的公钥。_ssh登录命令

C神奇操作(1)--static inline_static inline的优点-程序员宅基地

文章浏览阅读258次。C神奇操作(1)_static inline的优点

随便推点

国产化服务器内网安装onlyoffice_内网部署onlyoffice社区版-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏30次。国产化服务器安装onlyoffice_内网部署onlyoffice社区版

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第三篇)故障保护及问题诊断_ekf故障安全-程序员宅基地

文章浏览阅读1.4w次,点赞12次,收藏134次。基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第三篇)故障保护及问题诊断PIX无法安装驱动双击下载的px4_driver_installer_v10_win.exe驱动安装文件,Pixhawk驱动下载(点击即可下载):http://www.inf.ethz.ch/personal/lomeier/downloads/px4_driver..._ekf故障安全

python opencv 实现图片,视频 转 字符/字符画/字符视频_python opencv字模转换-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏19次。基于python 3.8图片转字符 升级版,顺便加了个 GUI地址:待定界面及使用图片转换时,界面会卡顿,表现为按钮按下去不会回弹,正常现象转换完成的图片视频在软件根目录视频转换请勿使用高分辨率,速度太慢,当然输入分辨率越高,转换后的分辨率也高参考 : i5-7200u 实测 500x300 mp4, 每秒只能处理 1.5 帧效果(这里只能上图,视频就不做展示,效果参考图片)- 原图-图片转 txt图片转 txt文本- 图片转指定字符-jpg彩色同一个字符,通过颜色的变换展_python opencv字模转换

零基础入门微信小程序开发-程序员宅基地

文章浏览阅读10w+次,点赞763次,收藏5.8k次。本课程是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件、页面样式文件、JavaScript 的基本知识并以指南针为例对基本知识进行扩展,另外加上开发工具的安装、小程序发布等内容,共 9 篇文章。_零基础学习微信小程序

SSM框架反向自动生成Mapper等_反向生成mapper-程序员宅基地

文章浏览阅读1.5k次。一、在pom文件中加入插件 web-ssm org.apache.tomcat.maven_反向生成mapper

使用Ionic.Zip压缩、分卷压缩、解压文件-程序员宅基地

文章浏览阅读1.8k次。分卷压缩使用方法: int iMinLength = 100;//最小压缩包单位(100M) ZipHelper.Compress("../../../xxx.xx", "../../../xx.zip", ZipDataUnit.MB, iMinLength);//分卷压缩解压使用方法 : string strUnZipPath = Environment.CurrentDirectory + "\\DeCompress"; _ionic.zip

推荐文章

热门文章

相关标签