React ant 编辑表格或者protable表格 多列头可伸缩

React ant 编辑表格或者protable表格 多列头可伸缩,第1张

项目场景:

多列头可伸缩:

例如:业务中, 台账有多列数据,需要伸缩开更多数据,


代码

递归,递归给每列的表头加上拖拉的样式,然后给每列加上拖拉的方法,可以实现
(这只是class函数写的编辑表格,其他 hook中的table表格可以私信我)

   // 多级列头可伸缩列
    handleResizeMultiseriate = (index: any, child, fie, row) => (e: any, { size }: any) => {
        // @ts-ignore
        this.setState(({ columns }) => {
            this.colNumber(columns, size.width, child, fie, row)
            const nextColumns = [...columns];
            nextColumns[index] = {
                ...nextColumns[index],
                width: size.width
            };
            return { columns: nextColumns };
        });
    }

    colNumber = (col, wid, child, fie, row) => { // colnumber
        for (let k = 0; k < col.length; k++) {
            if (col[k].children) {
                this.colNumber(col[k].children, wid, child, fie, row)
            } else {
                col.map((v) => {
                    if (v.field === fie) {
                        v.width = wid
                    }
                    return v
                })
            }
        }
    }

    colStyle = (columns, index) => { // 样式  属性
        for (let i = 0; i < columns.length; i++) {
            if (columns[i].children) {
                this.colStyle(columns[i].children, index)
            } else {
                columns.map((v) => {
                    v.onHeaderCell = row => ({
                        // @ts-ignore
                        width: row.width,
                        onResize: this.handleResizeMultiseriate(index, 'children', v.field, row)
                    });
                    return v
                })
            }
        }
    };

 render() {
 。。。
 columns.map((v, index) => {
            if (v.children) {
                this.colStyle(v.children, index)
            }
        })
 。。。
 }
解决方案:

递归,递归给每列的表头加上拖拉的样式,然后给每列加上拖拉的方法,可以实现
(这只是class函数写的编辑表格,其他 hook中的table表格可以私信我)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1321006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11
下一篇 2022-06-11

发表评论

登录后才能评论

评论列表(0条)

保存