【发布时间】:2021-11-11 23:36:18
【问题描述】:
我正在使用 React Hook Form V7。我有两个输入文件并使用Controller 来控制输入。
下面是我现在做的,每个字段都是必填项。
<form onSubmit={handleSubmit((data) => console.log(data))}>
<Controller
render={({ field }) => <TextField value={field.value} onChange={field.onChange} />}
name="test1"
control={control}
rules={{ required: true }}
/>
<Controller
render={({ field }) => <TextField value={field.value} onChange={field.onChange} />}
name="test2"
control={control}
rules={{ required: true }}
/>
<input type="submit" />
</form>
我的问题是如何设置而不是每一个都是必需的,我希望在两个字段都为空时显示错误消息,如果只有一个为空则被接受。
React Hook 表单上是否有任何onSubmit 验证?或者我需要对 onSubmit 函数进行正常验证以检查值,然后设置是否显示错误消息?
编辑: 这就是我现在所做的:
const [submitError, setSubmitError] = useState(false)
onSubmit((data) => {
const { test1, test2 } = data
if (!test1 && !test2) {
setSubmitError(true)
} else {
setSubmitError(false)
// do submit action
}
})
const errorEmptyMessage = "one of test1 and test2 should has value"
return (
<form onSubmit={handleSubmit(onSubmit)}>
<Controller
render={({ field }) => <TextField value={field.value} onChange={field.onChange} />}
name="test1"
control={control}
rules={{ required: true }}
/>
<Controller
render={({ field }) => <TextField value={field.value} onChange={field.onChange} />}
name="test2"
control={control}
rules={{ required: true }}
/>
{submitError && emptyMessage}
<input type="submit" />
</form>
)
我想知道React Hook Form 是否有内置函数可以做到这一点?
【问题讨论】:
标签: reactjs react-hooks react-hook-form