validate 부분과 관련하여…
validate:(value) => value === password.current
useRef를 사용하여 받아줬는데 왜 이렇게 받았는가? password.current는 어디서 나온것인가?에 관하여
원래는 state를 이용하는 것이 맞으나…
예시)
const [input,setInput] = useState("");
const handleChange = (e) => {
setInput(e.target.value);
}
return (<label>Email</label>
<input
value={input}
onChange={handleChange}
name="email"
type="email"
{...register("email", { required: true,pattern:/^\\S+@\\S+$/i})}/>
{errors.email && <p>This field is required</p>}
)
react-hook-form을 사용하고 있기 때문에 useRef()를 사용하는 것이다.
useRef()
React.createRefuseRef
DOM을 직접 선택해야 할 경우
… 등등
UseRef를 이용해서 어떻게 Password와 Password Confirm이 같은지 알 수 있는가?
const password = useRef(); // 1.ref 생성
password.current = watch("password"); // 2. watch 를 이용하여 password 필드값 가져오기
<input
name="password_confirm"
ref={register({
required : true,
validate : (value) =>
value === password.current //가져온 password 값을 ref.current에 넣어주기
})}
/>