【问题标题】:React Dynamic form state handlingReact 动态表单状态处理
【发布时间】:2016-07-19 09:17:47
【问题描述】:
我有一个动态表格。表单不会根据用户输入以首选模式增长,我将表单中的所有用户输入捕获为 React State。
在提交表单时,我将状态 (JSON) 转换为 YAML 文件。该状态的 JSON 结构有一个深度树,其中涉及多个数据结构。当我更改此深层树中的任何元素时,表单会更新。但是,随着动态表单的增长,表单加载时间和反应时间也会增加。有什么方法可以更快地处理这种复杂的状态操作?
【问题讨论】:
-
为了获得更好的性能,在您的渲染方法中,避免事件处理程序上的this 绑定或箭头函数(例如:onChange={()=>this.handleChange()})。将绑定移动到您的构造函数方法。您可以通过更好地利用 shoudlComponentUpdate 生命周期方法来进一步优化,以更好地协调 DOM。阅读更多关于它的信息here 和 here
标签:
javascript
json
forms
reactjs
react-dom
【解决方案1】:
这是我使用的方法
我创建一个数组并将每个动态子添加到数组中,如果它有任何变化,我会专门更新那个索引子表单。所以只有部分树得到更新。
我还根据索引生成输入名称,因此我可以通过拆分名称来解析当前索引,例如username-10 其中 10 来自索引,用户名是实际输入。还要添加 onBlur 而不是 onChange。