分享一个基于 Ant Design Table 的小组件

2021-04-09 02:31:12 +08:00
 vision1900

在数据密集型应用中 Table 是最常使用的数据容器之一。之前我一直使用 Ant Design 自带的 Table, 但后来有了个需求,用户要能够自定义 Table 的列, 包括是否显示某一列以及该列的优先级。

刚开始是尝试直接拖拽列头,奈何功能实现了,体验却是不尽人意

比如以下表格

姓名     年龄  性别  地址
Joe Doe  23   Male  5th Avenue, NY

要把地址拖拽到第二列, 需要先将年龄和性别向右移动一个单位为地址腾出地方

这里的"一个单位"是相对的,指的是一列,但这个绝对列长又不容易获取

而且这种拖拽不是瞬间完成的,在选择目的地的时候容易晃动,晃动造成的不确定性让用户感觉自己"没有控制权"

最后,拖拽过程中只有列头在移动,该列数据还在原来的位置,只有在拖拽完成后瞬间被移动过来。这破坏了列头和该列数据之间的一体性

后来干脆放弃这种方案, 直接采用 Modal 来专门处理这个问题,借助 react-beautiful-dnd 搞成了类似 Jira 里面任务泳道的形式

这是 Demo: http://widgets.realrz.com/ant-table-dnd

代码在这里: https://github.com/librz/ant-table-dnd

3208 次点击
所在节点    React
21 条回复
afc163
2021-05-16 23:11:36 +08:00
这个需求直接用 ProTable https://procomponents.ant.design/components/table/ 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769260

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX