해결된 질문
작성
·
133
·
수정됨
0
const onChangeEmail = (event) => {
console.log(event.target.value);
setEmail(event.target.value);
console.log("!@# ", email);
if (email === "") {
alert();
}
위의 코드를 실행할경우
가장 첫 입력시 아래와 같은 문제가 발생합니다.
(이메일 입력란에 'ㅁ' 입력)
첫번째 console.log envent.target.value는 정상적으로 출력되며
두번째 console.log는 "!@#" 을 제외한 email이 출력되지 않습니다. "!@#"만 출력됨
if문의 경우 공백으로 인식해서 true 동작하여 출력이 되고 있습니다.
원인은 무엇인가요?
추가로 event 의 문제인가 싶어
onChange가 아닌 onKeyUp 을 사용 할 경우에는
f12 개발 디버깅쪽 console 에 error 표시가 잔뜩 발생합니다.
이유가 무엇인가요?
==================================
email input tag에 최초 입력 시
아래의 코드처럼 onChange 함수안에 지역변수 testb 에 할당하는 event.target.value 는 출력되지만
state 에 할당된 email 은 한반작 늦은? 출력이 됩니다.
ex) input box 'ㅁ' 입력 시 결과
state email = '' 공백출력
지역변수 testb = 'ㅁ' 출력
const onChangeEmail = (event) => {
let testb = event.target.value;
alert(testb);
console.log(event.target.value);
setEmail(event.target.value);
console.log("!@# ", email);
설명 부탁드립니다.
답변 1
0