방명록
- [React Hook Form] React Hook Form 공부 - 12 (getValues, setValue 함수로 자바스크립트에서 FormValues 직접 제어하기) [7/25 study]2024년 07월 25일 17시 27분 17초에 업로드 된 글입니다.작성자: 동혁이
React Hook Form 공부 - 12
getValues, setValue 함수로 자바스크립트에서 FormValues 직접 제어하기
React-Hook-Form의 useForm 함수는 getValues(), setValue() 함수도 제공합니다.
기본 형태
Name | Output getValues() | { root: { test1: '', test2: ''} }
setValue('name', 'value', { options })
setValue 옵션
1. shouldValidate (boolean) => 유효성 검사를 수행할지 여부를 설정
2. shouldDirty (boolean) => 필드를 'dirty' 상태로 설정할지 여부를 결정
- ❓dirty 란?
주로 사용자가 어떤 형태로든 입력 필드에 대한 변경을 수행했을 때 사용되는 용어로, 이는 사용자의 상호작용이 발생했음을 나타내는 방법 중 하나입니다. 따라서, 폼의 특정 필드가 "dirty"라는 것은 해당 필드에 대한 사용자의 입력이 한 번 이상 발생했음을 의미합니다.
3. shouldTouch (boolean) => 터치하도록 설정할지 여부를 결정
const { register, control, handleSubmit, watch, getValues, setValue, formState: { errors }, } = useForm <FormValues > { defaultValues: { username: 'IU', age: 0, dob: new Date(), }, } const handleGetValues = () => { console.log("Values", getValues()); } const handleSetValue = () => { setValue("username", "", { shouldValidate: true, shouldDirty: true, shouldTouch: true, }); } ... ... return ( ... ... <button>Submit</button> <button type="button" onClick={handleGetValues}>getValues</button> <button type="button" onClick={handleSetValue}>setValue</button> ... ... )
위 코드처럼 button을 만들었고 각각 getValues(), setValue() 함수가 작동하게 했고, 그 결과를
위 그림은 getValues 버튼을 누른 결과입니다.
위 그림은 setValue 버튼을 누른 결과인데요.
setValue 함수에는 세 번째 인자로 객체를 넣을 수 있고, shouldDirty, shouldTouch, shouldValidate 항목을 지정할 수 있습니다.
그래서 위 그림과 같이 오른쪽 DevTool에서 보면 Touch, Dirty등이 바뀐 게 보일 거고, shouldValidate 항목이 true 값이라서 Validation 작업도 이루어졌습니다.
다음글이 없습니다.이전글이 없습니다.댓글