1. import React,{useState,useEffect} from "react";
  2. import { useForm } from "react-hook-form";
  3. export default function App() {
  4. //useForm
  5. const { register, handleSubmit, watch, formState: { errors } } = useForm();
  6. const onSubmit = data => console.log(data);
  7. const [test, setTest] = useState("lisi")
  8. //监听example值的变化
  9. console.log(watch("example")); // watch input value by passing the name of it
  10. useEffect(() => {
  11. setTest("zhangsan")
  12. }, [])
  13. return (
  14. //“handleSubmit”将在调用“onSubmit”之前验证您的输入
  15. <form onSubmit={handleSubmit(onSubmit)}>
  16. {/* 通过调用“register”函数将您的输入注册到钩子中 */}
  17. <input defaultValue={test} {...register("example")} />
  18. {/* 包括使用必需或其他标准 HTML 验证规则的验证 */}
  19. <input {...register("exampleRequired", { required: true })} />
  20. {/* 字段验证失败时将返回错误 */}
  21. {errors.exampleRequired && <span>This field is required</span>}
  22. <input type="submit"/>
  23. </form>
  24. );
  25. }

1.register

//<DOM {...register("name",obj)}>  name名+object(object里的东西在验证前发生)

<input {...register("exampleRequired", { required: true })} />
name(string) 属性名
required(boolean) true:必须输入一个值
maxLength(number) 接受的值的最大长度
minLength(number) 接受的值的最小长度
max(number) 接受的数字最大值,其他类型转为字符串,如果是逗号隔开的数值会转换为字符转
min(number) 接受的数字最小值,其他类型转为字符串,如果是逗号隔开的数值会转换为字符转
pattern(RegExp) 带有 /g 标志的 RegExp 对象会跟踪发生匹配的 lastIndex
validate(Function | Object) 回调函数
valueAsNumber(boolean) 相当于Boolean(value)
valueAsDate(boolean) 返回一个Date对象
setValueAs:((value: any) => T) 运行函数返回输入值
disabled(boolean) 是否被禁用
onChange((e: SyntheticEvent) => void) 更改事件中调用的函数事件
onBlur((e: SyntheticEvent) => void) 失去焦点触发
value 默认值
shouldUnregister

1-1 name(string)

const { register } = useForm();

-1 传单独的string值

image.png
image.png

-2 传加.的string值

可以简单理解为加点表示套对象,可多层嵌套

image.png
image.png

-3 传加.num的string值

变成数组,穿的num值表示在数组下标的第几位

image.pngimage.png

1-2 required(boolean)

//引入报错模块

const { register, handleSubmit,formState: { errors } } = useForm();

image.png
如果没有input中没有值则会报错(如果给input一个defaultValue也不会报错)

image.png

1-3 validate

image.png
image.png
image.png

1-4 valueAsDate

image.png
image.png
image.png

1-5 onChange

Code_HePiKktbwX.png
image.png
image.png没有找到keyCode