$ yarn add react-hook-form
import React from "react";
import { useForm } from "react-hook-form";
// ref 관리
type Inputs = {
example: string,
exampleRequired: string,
};
export default function App() {
const { register, handleSubmit, watch, errors } = useForm<Inputs>();
const onSubmit = data => console.log(data);
console.log(watch("example"))
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input name="example" defaultValue="test" ref={register} />
<input name="exampleRequired" ref={register({ required: true })} />
{errors.exampleRequired && <span>This field is required</span>}
<input type="submit" />
</form>
);
}
ref = {register({옵션})}
옵션에 required, maxLength, minLength, max, min, pattern, validate 을 추가할 수 있다.
name
각 필드의 등록 과정의 key로 사용하기 위해 name 속성이 반드시 필요하다.
error
validation error가 발생하면 error 객체를 제공한다.
Ts
React Hook Form은 타입스크립트로 만들어져, 폼 내 값 타입을 FormData 로 설정할 수 있다.
watch
deps에 name값을 넣어줘서 변화 감지