Skip to content

一个表格组件

Published:

最近做了个复杂的表格,中间遇到了不少问题,本文简单记录一下。

需求

从 1 到 6 是我个人认为的从简单到困难的顺序,分析一下(以下为纯主观看法):

遇到的问题

1、子表格能打开但无法收起

2、子表格中的表单数据无法被收集

3、子表格中的表单校验

4、外层拖拽样式混乱

5、两层结构的表单元素数据更新

由于无法使用 Form.Item 收集数据(见问题 2、3),所以自行用 state 存储整个两层的表单数据。

处理逻辑:下拉框、开关 onChange 的时候,修改上一级组件内的 state,使当前组件重新渲染。

在此情况下:

不是很好的解决方案:

输入框采用直接修改对象值的方式(实在想不出在纯函数的方式下怎么搞),不触发组件渲染,这样既能够正常输入,也能通过 Form 获取到绑定到数据。