我想我可以在每个输入上放置refs并将它们的值复制到componentDIDMount上的应用程序状态,但必须有更好的方法.还有其他人解决了这个问题吗?
更新
我现在认为解决这个问题的最佳方法是在创建校验和时让React考虑输入值. GH问题:https://github.com/facebook/react/issues/4293
解决方法I suppose I Could put refs on every input and copy their values into the application state on componentDIDMount,but there has got to be a better way. Has anyone else solved this problem?
浏览器自动填充字段或在刷新时记住以前的值也可能导致实际上同样的问题 – 您的应用程序的数据视图与用户的不同.
我过去的蛮力解决方案是从提交的输入中提取完整的表单状态并重新运行valIDaton,然后再继续提交.
使用componentDIDMount听起来像一个更优雅的解决方案,因为它避免了用户输入无效数据,并允许他们在收到任何警告之前尝试提交它.但是,您不需要为每个输入添加引用;只需在< form>中添加一个并使用其.elements
collection来提取所有数据.
建议的解决方案:
>在componentDIDMount()中,从其.elements中提取表单的数据(为此,我从表单库中提取了get-form-data)
>根据应用程序状态中的内容检查每个字段的当前值.
>如果字段的当前值不同,请将其视为通过事件到达的新用户输入 – 将其更新为状态并重新运行任何关联的验证例程.
然后从componentDIDMount()开始,您的应用和用户将始终在同一页面上(字面意思).
总结以上是内存溢出为你收集整理的如何处理同构渲染表单的早期输入全部内容,希望文章能够帮你解决如何处理同构渲染表单的早期输入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)