【问题标题】:How to implement a global form validation in React App?如何在 React App 中实现全局表单验证?
【发布时间】:2019-05-08 10:02:06
【问题描述】:

我有一个用 vanilla-JS 编写的项目,它在应用程序的不同部分包含 10 个表单。所有表单/输入都通过validation.js 进行验证,它会检查它们的各种标准,如果有任何问题,则阻止提交。

现在我想在我的新反应应用程序中构建相同或相似的验证,它也将有大约 10 个表单:

我从 Login.js 开始,它有一个带有多个输入的表单,并使用 onSubmit 和组件的本地状态直接在组件中进行验证。虽然它工作正常,但我不想在另一个组件中再写 9 次这个验证。

另外,编写一个 Form.js 并在任何地方重复使用它不是一种选择,因为几乎所有表单看起来都非常不同并且用于不同的目的,它们唯一的共同点是:它们都需要在提交之前进行验证。

有人对我的问题提出建议吗?或者也许是一个链接,在哪里讨论了类似的问题?

【问题讨论】:

  • 您可以对输入标签使用 required 属性,并在表单的 onSubmit 事件中调用 form.checkValidity() 方法。您需要任何自定义验证逻辑吗?
  • 试试 Formik - 不要重新发明轮子
  • 是的,有很多自定义验证:货币、不同的密码选项应该是可能的、带有日期的输入的最小/最大属性等。@MetehanSenol:React 中有没有办法创建类似自定义的东西checkValidity()?
  • 可以看这篇文章medium.com/front-end-weekly/…

标签: javascript reactjs forms validation


【解决方案1】:

虽然 HTML5 验证似乎足以满足基本场景的需求,但 Formik(参见 Formik)在 react 中涵盖了更复杂的表单/验证场景。例如。如果验证取决于其他字段。值得一看。

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2021-11-15
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多