<form onSubmit={handleSubmit(onClickSignUp)}>
<S.Inputs
type='text'
placeholder='@를 포함한 이메일을 입력해주세요'
{...register("email")}/>
<S.Inputs
type='password'
placeholder='8자리 이상 비밀번호를 입력해주세요'
{...register("password")}/>
<S.Inputs
type='text'
placeholder='닉네임을 입력해주세요'
{...register("name")}/>
<S.SignUpBtn>회 원 가 입</S.SignUpBtn>
</form>
다행히도
formState
에 보면isValid
라는 기능이 있다.
hookform으로 지정한 input들 값이 에러없이 다 잘 들어가 있으면 true을 반환하고, 그렇지 않으면 false를 반환한다.
사용 방법으로는
// container파일에서
<S.SignUpBtn isActive={formState.isValid}>회 원 가 입</S.SignUpBtn>
/* css 파일에서 */
background-color: ${(props:BackColorProps) => props.isActive ? "rgba(30, 130, 76)" : "white"};
이렇게 하면 잘 작동된다!
useState를 사용했을 때보다 코드 길이도 훨씬 줄어들고 state값을 일일이 저장하지 않아 속도도 빠르다.