虚拟化列表和表单校验怎么解决 #56469
-
|
目前我们项目里面使用了Form.List来渲染了一个大概会有20-50个表单项的卡片列表 发现目前这样的数量会导致页面卡顿 想问问有没有大佬遇到这种情况。有没有什么idea可以分享一下 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
Hi @Henry-G-H-Huang! I'm Dosu and I’m helping the ant-design team. 虚拟化列表和表单校验在 Ant Design 体系下确实存在技术瓶颈:只有被渲染(可见)的 Form.Item 才能被表单系统注册和校验,未渲染的项(被虚拟化隐藏的)无法触发校验,也无法显示内联校验信息,这是虚拟化和表单系统结合的通用限制相关讨论。 目前社区和官方都没有彻底解决这个问题的方案,只能权衡性能和校验体验。常见做法有:
官方建议还是优先用单一 Form + Form.List 管理所有数据,虚拟化只做渲染优化,校验体验做适当妥协官方建议。如果业务对校验和 message 展示要求极高,可能需要自研一套虚拟化友好的表单系统。 相关社区讨论和案例可以参考: 如需具体代码实现或全局错误展示的 UI 方案,可以补充下你的具体需求场景。 To reply, just mention @dosu. Docs are dead. Just use Dosu. |
Beta Was this translation helpful? Give feedback.
Hi @Henry-G-H-Huang! I'm Dosu and I’m helping the ant-design team.
虚拟化列表和表单校验在 Ant Design 体系下确实存在技术瓶颈:只有被渲染(可见)的 Form.Item 才能被表单系统注册和校验,未渲染的项(被虚拟化隐藏的)无法触发校验,也无法显示内联校验信息,这是虚拟化和表单系统结合的通用限制相关讨论。
目前社区和官方都没有彻底解决这个问题的方案,只能权衡性能和校验体验。常见做法有:
官方建议还是优先用单一 Form + Form.List 管理所有数据,虚拟化只做渲染优化,校验体验做适当妥协官方建议。如果业务对校验和 message 展示要求极高,可能需要自研一套虚拟化友好的表单系统。
相关社区讨论和…