ユーザーがドラッグアンドドロップで Ant Design Table の列幅を調整できるようにする方法はありますか?
については列の並べ替え用であり、列のサイズ変更用ではない例をいくつか見つけました。
助けてください、ありがとう!
更新@ 2018-11-13
現在、テーブル列のサイズ変更の公式例があります。
https://ant.design/components/table/#components-table-demo-resizable-column
私は実用的なサンプルを作成しました-完璧にはほど遠いため、多くの最適化が必要です。基本的に、onHeaderCell
を使用し、onMouseDown
、onMouseUp
、およびonMouseMove
をキャプチャする必要があります。
onMouseMove
setState
を呼び出し、基本的に新しい列幅で再レンダリングをトリガーします。
https://codesandbox.io/s/j2zw9nn5w9
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));
}
}
};
}