setValue: (name: string, value: unknown, config?: Object) => void
이 함수는 등록된(registered) 필드의 값을 동적으로 설정하고, 유효성 검사 및 폼 상태 업데이트와 관련된 옵션을 제공합니다. 동시에 불필요한 리렌더링을 방지합니다.
Props
Name | Type | Description | |
---|---|---|---|
name | string |
| |
value | unknown | 필드 값. 이 인자는 필수이며 | |
options | shouldValidate | boolean |
|
| shouldDirty | boolean |
|
| shouldTouch | boolean | 입력 필드 자체를 터치된 상태로 설정할지 여부.
|
Rules
다음 조건에서만 리렌더링이 트리거됩니다:
값 업데이트로 인해 에러가 발생하거나 수정된 경우.
setValue가 dirty나 touched와 같은 상태 업데이트를 유발하는 경우.
두 번째 인자를 중첩된 객체로 만드는 것보다 필드 이름을 대상으로 설정하는 것이 좋습니다.
setValue('yourDetails.firstName', 'value'); // ✅ 성능이 뛰어남setValue('yourDetails', { firstName: 'value' }); // 성능이 떨어짐register('nestedValue', { value: { test: 'data' } }); // 중첩된 입력값을 등록(register)setValue('nestedValue.test', 'updatedData'); // ❌ 관련 필드를 찾지 못함setValue('nestedValue', { test: 'updatedData' } ); // ✅ setValue가 입력을 찾고 업데이트setValue
를 호출하기 전에 입력의 이름을 등록하는 것이 좋습니다. 전체 필드 배열을 업데이트하려면useFieldArray
훅이 먼저 실행되고 있는지 확인하세요.중요: 전체 필드 배열을 업데이트할 때는
setValue
대신useFieldArray
의replace
를 사용하세요.setValue
를 사용한 전체 필드 배열 업데이트는 다음 메이저 버전에서 제거될 예정입니다.// 전체 필드 배열을 업데이트할 수 있습니다.setValue('fieldArray', [{ test: '1' }, { test: '2' }]); // ✅//등록하지 않은(unregistered) 입력 필드에 setValue를 사용할 수 있습니다.setValue('notRegisteredInput', 'value'); // ✅ 등록(registered) 권장// 다음 코드는 단일 입력 필드를 등록(register)합니다. (별도의 등록(register) 호출 없이)setValue('resultSingleNestedField', { test: '1', test2: '2' }); // 🤔// 등록된(registered) 입력 필드가 있는 경우, setValue는 두 개의 입력 필드를 모두 정확히 업데이트 합니다.register('notRegisteredInput.test', '1')register('notRegisteredInput.test2', '2')setValue('notRegisteredInput', { test: '1', test2: '2' }); // ✅ setValue를 두 번 호출하는 sugar syntax
Examples
import { useForm } from "react-hook-form";const App = () => {const { register, setValue } = useForm();return (<form><input {...register("firstName")} /><button type="button" onClick={() => setValue("firstName", "Bill")}>setValue</button><buttontype="button"onClick={() =>setValue("lastName", "firstName", {shouldValidate: true,shouldDirty: true})}>setValue options</button></form>);};
Video
다음 동영상 튜토리얼에서는 setValue
API에 대해 자세히 설명합니다.
지원해 주셔서 감사합니다
프로젝트에서 React Hook Form이 유용하다고 생각하신다면, 스타를 눌러 지원해 주시길 부탁드립니다.