antd 处理超大型表单的问题
比如说一个超大型的表单,每个表单项item都被getFieldDecorator给包裹一层,因为被包裹住的输入组件的onChange事件会触发连带着触发Form.create这层组件上的forceUpdate,因此整个表单都会被重新render
这个时候如果触发onChange事件的是Input组件,显而易见就会开始卡顿
这里最简单的办法就是将这个表单给拆成好几个组件,每个组件上单独放一个Form.create,这样就能避免整个表单被重新render了
还找到一个antd-react-form-builder,看readme是解决了一部分问题,具体还未详细使用
请问,还有没有其他的办法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可以给onchange加上debounce,目前已跑通,但是表单校验会有问题
一直忘了自己提的这个问题了
后面我们处理办法很简单,在每个表单项组件上面再套一层用来检测表单项是否需要改变,保证如果value没有change的话,这个表单项不会被rerender即可
当然表单项特别多的时候还是能够感觉到卡顿,但可以忍受
问题解决了吗?