subscribe:
UseFormSubscribe<TFieldValues extends FieldValues>
formState
변경사항과 값 업데이트를 구독합니다. 개별 필드나 전체 폼을 구독할 수 있으며, 폼 변경으로 인한 불필요한 리렌더링을 방지할 수 있습니다.
Props
Name | Type | Description | Example |
---|---|---|---|
name | undefined | 전체 폼을 구독합니다. | subscribe() |
string[] | name으로 여러 필드를 구독합니다. | subscribe({ name: ['firstName', 'lastName'] }) | |
formState | Partial<ReadFormState> | 구독할 formState 를 선택합니다. |
|
callback | Function | 구독을 위한 콜백 함수입니다. |
|
exact | boolean | 구독 시, 정확히 일치하는 매칭을 활성화합니다. | subscribe({ name: 'target', exact: true }) |
참고사항
이 함수는 변경사항 구독만을 위한 것이며, 상태 업데이트 dispatch나 리렌더링 트리거는 허용되지 않습니다. 예:
setValue
또는reset
이 함수는
createFormControl.subscribe
와 동일한 기능을 공유합니다. 다만 createFormControl은 React 컴포넌트 외부에서도 초기화할 수 있다는 점이 다릅니다.이 함수는 렌더링 없이 폼 상태를 구독하기 위한 전용 함수입니다. watch 콜백 함수 대신 이 함수를 사용하세요.
예시:
import { useForm } from "react-hook-form"type FormInputs = {firstName: stringlastName: string}export default function App() {const { register, subscribe } = useForm<FormInputs>()useEffect(() => {// 구독 해제를 반드시 해야 합니다;const callback = subscribe({formState: {values: true,},callback: ({ values }) => {console.log(values)},})return () => callback()// subscribe를 직접 반환할 수도 있습니다// return subscribe();}, [subscribe])return (<form><input {...register("firstName", { required: true })} /><input {...register("lastName", { required: true })} /></form>)}
지원해 주셔서 감사합니다
프로젝트에서 React Hook Form이 유용하다고 생각하신다면, 스타를 눌러 지원해 주시길 부탁드립니다.