import React,{useState,useEffect} from "react";import { useForm } from "react-hook-form";export default function App() {//useFormconst { register, handleSubmit, watch, formState: { errors } } = useForm();const onSubmit = data => console.log(data);const [test, setTest] = useState("lisi")//监听example值的变化console.log(watch("example")); // watch input value by passing the name of ituseEffect(() => {setTest("zhangsan")}, [])return (//“handleSubmit”将在调用“onSubmit”之前验证您的输入<form onSubmit={handleSubmit(onSubmit)}>{/* 通过调用“register”函数将您的输入注册到钩子中 */}<input defaultValue={test} {...register("example")} />{/* 包括使用必需或其他标准 HTML 验证规则的验证 */}<input {...register("exampleRequired", { required: true })} />{/* 字段验证失败时将返回错误 */}{errors.exampleRequired && <span>This field is required</span>}<input type="submit"/></form>);}
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:( |
运行函数返回输入值 |
| disabled(boolean) | 是否被禁用 |
| onChange((e: SyntheticEvent) => void) | 更改事件中调用的函数事件 |
| onBlur((e: SyntheticEvent) => void) | 失去焦点触发 |
| value | 默认值 |
| shouldUnregister |
1-1 name(string)
const { register } = useForm();
-1 传单独的string值


-2 传加.的string值
可以简单理解为加点表示套对象,可多层嵌套


-3 传加.num的string值
变成数组,穿的num值表示在数组下标的第几位


1-2 required(boolean)
//引入报错模块
const { register, handleSubmit,formState: { errors } } = useForm();

如果没有input中没有值则会报错(如果给input一个defaultValue也不会报错)
1-3 validate
1-4 valueAsDate
1-5 onChange


没有找到keyCode




