로그인기능 - 유효성검사(리턴문제)

developer.do·2023년 1월 11일
0

우선 Return의 기본적인 내용을 알아보고가자

  • 함수는 공장이다. Input이란 재료를 받아다가 작업을 하고 outPut으로 내보낸다
  • 함수는 항상 return 값이 있다. return을 안써주게되면 undefined가 나온다.
  • 리턴을 만나는 순간 함수를 바로 나가버린다

기존코드

// return이 빠져있어서, 계속 밑으로 쭉쭉 내려감
// 비밀번호 유효성 검사에서 걸려도(비밀번호 틀려도) 회원가입이 진행됨
 const handleRegister = () => {
    const matchedEmail = email.match(emailRegex);
    const matchedPw = password.match(pwRegex);

    if (matchedEmail === null) {
      setEmailError(true);
     
    } else {
      setEmailError(false);
    }

    if (matchedPw === null) {
      setPasswordShortError(true);
     
    } else {
      setPasswordShortError(false);
    }

    if (password !== checkPassword) {
      setPasswordError(true);
     
    } else {
      setPasswordError(false);
    }

  
 
    createUserWithEmailAndPassword(authService, email, password)
      .then(() => {
        console.log("회원가입성공");
        setEmail("");
        setNickname("");
        setPassword("");
        setCheckPassword("");
        navigate("Login");
      })
      .catch((err) => {
        console.log("err.message:", err.message);
        if (err.message.includes("already-in-use")) {
          alert("이미 사용중인 아이디 입니다.");
        }
      });
  };
 const handleRegister = () => {
    const matchedEmail = email.match(emailRegex);
    const matchedPw = password.match(pwRegex);

    if (matchedEmail === null) {
      setEmailError(true);
      return;
    } else {
      setEmailError(false);
    }

    if (matchedPw === null) {
      setPasswordShortError(true);
      return;
    } else {
      setPasswordShortError(false);
    }

    if (password !== checkPassword) {
      setPasswordError(true);
      return;
    } else {
      setPasswordError(false);
    }

  
 
    createUserWithEmailAndPassword(authService, email, password)
      .then(() => {
        console.log("회원가입성공");
        setEmail("");
        setNickname("");
        setPassword("");
        setCheckPassword("");
        navigate("Login");
      })
      .catch((err) => {
        console.log("err.message:", err.message);
        if (err.message.includes("already-in-use")) {
          alert("이미 사용중인 아이디 입니다.");
        }
      });
  };

0개의 댓글