antd 处理超大型表单的问题

发布于 2022-09-06 22:42:09 字数 326 浏览 10 评论 0

比如说一个超大型的表单,每个表单项item都被getFieldDecorator给包裹一层,因为被包裹住的输入组件的onChange事件会触发连带着触发Form.create这层组件上的forceUpdate,因此整个表单都会被重新render
这个时候如果触发onChange事件的是Input组件,显而易见就会开始卡顿

这里最简单的办法就是将这个表单给拆成好几个组件,每个组件上单独放一个Form.create,这样就能避免整个表单被重新render了
还找到一个antd-react-form-builder,看readme是解决了一部分问题,具体还未详细使用

请问,还有没有其他的办法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

反差帅 2022-09-13 22:42:09

可以给onchange加上debounce,目前已跑通,但是表单校验会有问题

寄居者 2022-09-13 22:42:09

一直忘了自己提的这个问题了

后面我们处理办法很简单,在每个表单项组件上面再套一层用来检测表单项是否需要改变,保证如果value没有change的话,这个表单项不会被rerender即可

当然表单项特别多的时候还是能够感觉到卡顿,但可以忍受

半寸时光 2022-09-13 22:42:09

问题解决了吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文