React Hook Form - Rules.Validate 未触发

Dev*_*v T 3 reactjs material-ui react-hook-form

我有以下带有 RHF 控制器和 MUI 文本字段的字段:

<Controller
  control={control}
  name="name"
  defaultValue=""
  rules={{
    required: true,
    minLength: 3,
    maxLength: 300,
    validate: wtf,
  }}
  render={({ field, fieldState: { error } }) => (
    <TextField
      {...field}
      fullWidth
      label="Name"
      size="small"
      helperText={formState?.errors?.name?.message}
      error={error !== undefined}
    />
  )}
/>
Run Code Online (Sandbox Code Playgroud)

输入更改时不会调用 wtf 方法。我尝试过不同的重新验证模式,但这根本没有触发。我在这里错过了什么吗?我检查过示例和教程,它们似乎都是这样做的。

小智 12

在这里创建了一个沙箱,它运行得很好。

我只需{mode: "onChange"}useForm方法调用中添加并string在验证函数失败时返回 a 。

我的改进基于寄存器选项的文档,因为它是控制器组件的规则部分中推荐的。

请随时寻求任何进一步的帮助。

-阿多

  • `{mode: "onChange"}` 是一个技巧。谢谢! (5认同)
  • 我爱你,你的回答真的帮了我❤️ (2认同)