对多个字段进行表单验证

时间:2021-01-25 15:20:01

标签: reactjs typescript

我是 React 的新手。我有一个非常简单的表格,其中包含雇主地址的详细信息。我想验证是否有任何字段有价值,然后检查长度是否 <=10,如果不存在,则很好。没有强制验证,只有长度验证(如果存在)。

目前正在做如下:

  const isValid=
    employer.address == null ||
    (employer.address != null &&
      (employer.address.building?.length <= 2) &&
      employer.address.street?.length <= 2 &&
      employer.address.county?.length <= 2 &&
      employer.address.city?.length <= 2 &&
      employer.address.postcode?.length <= 2);

是否有更好的方法来测试验证是否包含值,如果不包含则忽略。

1 个答案:

答案 0 :(得分:0)

这既不是坏方法也不是最好的方法

使用当前代码,您可以进行一些清理以使其看起来更好
您可以为雇主地址分配一个常量,因此无需重复

const emp = employer.address
const isValid=
    !emp||
    (emp&&
      (emp.building?) &&
      emp.street?&&
      emp.county?&&
      emp.city? &&
      emp.postcode?);

在上面的例子中,如果数据是'',则验证有效,但如果其中包含任何内容('s'),则不会调用验证
我认为它应该以同样的方式工作

还有一些软件包可以为您提供验证

还原形式 https://redux-form.com/8.3.0/

是的 https://www.npmjs.com/package/yup