오늘 한 작업들
목격,실종,공공데이터 부분 디테일 페이지에 지도 뿌리고 위치에마커찍기 기능구현
목격, 실종 작성 부분 카카오맵 로직 컴포넌트화 시킴
목격, 실종 작성시 필요값 입력시 버튼활성화 기능 구현
SIgnIn 부분 코드 react-hook-form으로 리팩토링 및 필수 값 입력시 로그인 버튼 활성화
오늘의 어려움
React-hook-form 사용한 form 에서 원하는 값을 입력시 버튼 활성화 하는 로직
const Signin = () => {
const { register,
handleSubmit,
formState: { errors },
reset,
resetField,
watch,
} = useForm<LoginFormValues>();
const [isActive, setIsActive] = useState<boolean>(false);
const watchAll = Object.values(watch());
// 의존성배열에 값이 변하기 생기면 useEffect안에 있는 코드가 실행
// react-hook-form으로 설정한 input 값이 다 입력이 되어 있으면 state값이 true로 반환
useEffect(() => {
if (watchAll.every((el) => el)) {
setIsActive(true);
} else {
setIsActive(false);
}
}, [watchAll]);
...
return (
...
<LoginInputBox>
<div>
<span>아이디</span>
<input
type="text"
id="id"
placeholder='아이디 입력'
{...register('id', { required: true })}
/>
</div>
<div>
<span>비밀번호</span>
<input
type="text"
id="pw"
placeholder='비밀번호 입력'
{...register('pw', { required: true })}
/>
</div>
</LoginInputBox>
<LoginButtonBox>
// state를 사용해서 isActive 조건에 따라 사용자에게 보이는 버튼을 다르게 구현
{isActive === false ? (
<SignButtonBefore>
회원가입
</SignButtonBefore>
) : (
<button type="submit" >
회원가입
</button>
)}
...
참고자료
https://velog.io/@e_juhee/watch-getValues
React hook form의 watch를 이용해서 입력 여부 확인하기
react hook form, useform 활용, watch와 getValues의 차이
velog.io
react-hook-form 에서 watch로 등록 버튼 활성화 하기
useform 을 쓰면서 필수로 입력해야 하는 인풋값에 따라 등록 버튼을 활성화/비활성화 시키고자 한다면 react-hook-form에서 제공하는 watch 를 사용하면 된다.watch() : 모든 입력을 검증watch("name") : 여러
velog.io
'TIL' 카테고리의 다른 글
개발공부 76일차 TIL (0) | 2023.03.26 |
---|---|
개발공부 75일차 TIL (0) | 2023.03.25 |
개발공부 73일차 TIL (1) | 2023.03.23 |
개발공부 72일차 TIL (0) | 2023.03.22 |
개발공부 71일차 TIL (0) | 2023.03.21 |