`react-hook-form` 在空输入时显示错误信息

`react-hook-form` display error message on empty input

预期行为: 当在文本输入中输入任何内容之前点击表单提交按钮时,将显示错误消息。

当前行为: 错误消息仅在输入有值时显示一次,即使在点击提交之后也是如此。这意味着用户必须在出现错误消息之前单击并输入文本字段。

Minimal codesandbox demo

我知道在 react-hook-form 的早期版本中可以这样做,我认为这实际上是默认行为,肯定还有办法吗?看起来很简单。

<form className="App" onSubmit={handleSubmit(submitForm)}>
      <TextField
        label="Attribution"
        variant="outlined"
        helperText={
          Boolean(errors.attribution)
            ? errors.attribution.message
            : "Who is being quoted?"
        }
        {...register("attribution", {
          required: true,
          minLength: { value: 3, message: "Please enter a longer name" },
          maxLength: { value: 50, message: "Please enter a shorter name" }
        })}
        error={Boolean(errors.attribution)}
      />
      <Button type="submit">Submit</Button>
    </form>

好的,我意识到可以通过更改

轻松修复它
{...register("attribution", {
          required: true,
          minLength: { value: 3, message: "Please enter a longer name" },
          maxLength: { value: 50, message: "Please enter a shorter name" }
        })}

{...register("attribution", {
          required: 'Your name is required', // <- right here
          minLength: { value: 3, message: "Please enter a longer name" },
          maxLength: { value: 50, message: "Please enter a shorter name" }
        })}

非常酷。

Relevant react-hook-form docs.

您需要提供消息,否则该字段只会变成红色

{...register("attribution", {
   required: { value: true, message: "Field is required" },
   minLength: { value: 3, message: "Please enter a longer name" },
   maxLength: { value: 50, message: "Please enter a shorter name" }
})}