蚂蚁设计-如何通过拖动来调整表格的列宽?

时间:2018-06-20 04:24:00

标签: javascript reactjs drag-and-drop antd

有什么方法可以让用户通过拖放来调整Ant Design Table的列宽?

我发现了一些有关列排序的示例,而不是列大小调整的示例。

请帮助,谢谢!


更新于2018-11-13

现在有一个调整表列大小的官方示例:

https://ant.design/components/table/#components-table-demo-resizable-column

1 个答案:

答案 0 :(得分:2)

我制作了一个工作样本-它远非完美,需要大量优化。基本上,您需要使用onHeaderCell并捕获onMouseDownonMouseUponMouseMove

onMouseMove我们称为setState,基本上会触发具有新列宽的重新渲染。

https://codesandbox.io/s/j2zw9nn5w9 Antd adjust table column width by dragging

onHeaderCell: column => {
  let colw = this.state.columnWidth;
  return {
    onMouseDown: e => {
      this.mouseDownX = e.clientX;
      this.beginDrag = true;
    },
    onMouseUp: () => {
      this.beginDrag = false;
    },
    onMouseMove: e => {
      if(this.beginDrag === true) {
        this.updateColumnWidth(colw + 
        Math.round((e.clientX - this.mouseDownX)*.05));
      }
    }
  };
}