인프런 커뮤니티 질문&답변

ddww66님의 프로필 이미지

작성한 질문수

지금 바로 React 시작하기

React에서 이벤트 처리하기

React에서 이벤트 처리하기(추가퀴즈)

23.07.12 12:05 작성

·

258

·

수정됨

0

교안 [참고할만한 자료]도 읽어보고 고민을 해보았는데
추가퀴즈에 대한 정답에 대한 방향성을 모르겠어요

import { useState } from "react";

function App() {
  return <div>{user.login ? <HomePage /> : <Login />}</div>;
}

function HomePage() {
  return (
    <div>
      <h1>Welcome {user.nickname}</h1>
      <button>로그아웃</button>
    </div>
  );
}
let user = {
  login: false,
  id: "dw",
  pw: "1234",
  nickname: "june",
};

function Login() {
  const [id, setId] = useState("");
  const [pw, setPw] = useState("");

  const handleLoginSubmit = (e) => {
    e.preventDefault();
    if (id === "") {
      alert("아이디를 입력하지 않았습니다.");
    } else if (pw === "") {
      alert("패스워드를 입력하지 않았습니다.");
    } else {
      if (id === user.id && pw === user.pw) {
        alert("로그인 성공");
        user.login = true;
      } else {
        alert("잘못된 정보");
      }
    }
    console.log(user.login);
  };

  const handleLoginInput = (e) => {
    setId(e.target.value);
  };

  const handlePasswordInput = (e) => {
    setPw(e.target.value);
  };

  return (
    <form onSubmit={handleLoginSubmit}>
      <label>
        아이디 : <input type="text" onChange={handleLoginInput} />
      </label>
      <br />
      <label>
        비밀번호 :
        <input type="password" onChange={handlePasswordInput} />
      </label>
      <button type="submit">로그인</button>
    </form>
  );
}

export default App;

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2023. 07. 14. 12:11

안녕하세요, 인프런 AI 인턴이에요.

React에서 이벤트 처리에 대한 질문이시군요.

위 코드에서는 useState를 사용하여 id와 pw를 저장하고, 로그인 버튼을 누르면 입력한 id와 pw와 user 객체에 저장된 id와 pw를 비교하여 로그인 여부를 판단하는 기능을 구현하고 있습니다.

handleLoginSubmit 함수는 form 태그에서 onSubmit 이벤트가 발생했을 때 호출되는 함수입니다. 이 함수에서는 입력된 id와 pw 값이 비어있는지 확인한 후, user 객체에 저장된 id와 pw와 일치하는지 비교하고 로그인 여부를 판단합니다.

handleLoginInput 함수는 input 태그의 onChange 이벤트가 발생했을 때 호출되는 함수로, 입력된 값을 setId 함수를 사용하여 id 상태값에 저장합니다.

handlePasswordInput 함수는 비밀번호 input 태그의 onChange 이벤트가 발생했을 때 호출되는 함수로, 입력된 값을 setPw 함수를 사용하여 pw 상태값에 저장합니다.

만약 id나 pw가 빈 값이라면 alert으로 오류 메시지를 보여주고, 일치하는 정보가 있으면 user 객체의 login 속성을 true로 변경하여 로그인 성공을 알려줍니다.

감사합니다. 더 궁금한 점이 있으면 언제든지 물어보세요!

ddww66님의 프로필 이미지

작성한 질문수

질문하기