먼저 아이디 값과 패스워드 값을 빈 문자열로 state값으로 만들어줬다.
idCheck
정규식표현으로 유효성 검사 할 값을 false값을 지정했다.
pwCheck
유효성검사를 false로 똑같이 지정 !
자세한건 >>> React 문서
id
pw
value값을 handleLoginInfo 함수에 담아줬다!조건 1) 먼저 우리는 id가 공백일 경우에 ID Input아래에
'아이디를 다시 입력해주세요' 라는 텍스트를 줘야한다!
조건 2) 아이디 형식이 어긋날 경우
@#$%*^&()
등 영문 소/대문자가 아닌
다른 특수문자가 들어갈 경우에,
또 다시 '아이디를 다시 입력해주세요' 라는 문구가 나와야 한다!
버튼
onClick
했을때
- 버튼에
onClick={this.Mainvaild}
함수Mainvaild
함수를 콜백 함수로 조건
loginId
를 this.state
로 선언을 해주어 비구조할당을 해줬다
정규표현식으로 영문 소/대문자를 상수
에 담았다. (구글링을 통해...)
정규 표현식 상수는 네이밍을 의미 있게 대문자로 하는게 좋다고
성훈님께서 리뷰를 남겨줘서 재 빠르게 반영하였다 !
다른 사람이 볼 때 알아 볼 수 있을까?ㅎㅎ
id 정규표현식에 id가 숫자/영문만 포함 할 경우의 표현식이다
헷갈리지 않게 메모!!
idCheck
는 여기서 함수를 지정 안해줘도 set에서
바로 boolean
을 사용 할 수 있다
조건 1)
id가 공백일 경우에
setState
로 불리언값을true
로 설정해주면
boolean
값이set
에서 업데이트 된다.
그럼 공백일 경우에 원하는 로직으로 구 할 수 있겠다.
조건 2)
이 test()메서드는 정규식과 지정된 문자열 간의 일치 항목을 검색한다
라고 공식문서에 적혀 있다.
그럼 위에 선언 한 변수regEx
에서test
를 사용하고
메서드 안에서loginId
를 할당 한 후 바로setState
를 업데이트 !
정규 표현 형태가false
일 경우에 아무 값도 안나오게
반대로,true
일 경우에 '아이디를 다시 입력해주세요' 라는 텍스트가 나와야겠다
<Input />
아래에 자바스크립트로 선언하면{idCheck && "아이디를 다시 입력해주세요."}
<div>
쓰지 않고 가능하다 !const {password} = this.state
state를 password: '' 빈값을 준 상태에서
버튼 핸들링 함수 안에id
처럼 조건에 할당시켜준다 !
if(password.length >= 8){ this.setState({pwCheck: false}); }else{ this.setState({pwCheck: true}); }
아이디의 길이가
8자
이하 이면pwCheck
가false
이상이면true
<Input/>
밑에 자바스크립트로 div
대신 써준다.{pwCheck ? "비밀번호를 입력해주세요" : ""}
pwCheck
가 set
에서 true
false
를 지정 했기 때문에,비밀번호는 생각보다 간단하다.
하나하나 차근차근 하면 할 수 있는 것들인데
뇌가 정지되면 잠깐 나갔다오자 ㅎ_ㅎ