장고 rest framework와 리액트를 이용하여 로그인 기능을 구현 중이다.
클라이언트에서 axios로 email과 password를 api 주소로 post하면 서버에서 회원 정보가 유효한지 아닌지 확인한다.
services/AuthService.js에 로그인 로직을 생성하고, pages/Login.jsx에서 로그인 폼 제출 시 AuthService에 로직이 실행된다.
- 문제점 (틀린 코드)
[Login.jsx 실행 화면]
[pages/Login.jsx]
이메일 형식이 맞다면(else문), requestLogin을 실행하고 반환값을 출력한다.
[services/AuthService.js]
email과 password가 post에 성공하였다면, 사용자 정보를 출력하고 리턴한다.
[출력 결과]
하지만! 콘솔을 보면 AuthService에는 잘 뜨는 반면에 Login에는 전달이 안된 것을 볼 수 있다.
🤔 🤔 .. await 구문을 통해 정보를 받아온걸 콘솔을 통해 확인할 수 있다.
하지만 Login.jsx에서는 undefined로 뜨는게 의아했다.
console.log로 requestLogin(email,pw) 자체를 출력해보면, fulfilled가 뜨는 걸 보니 비동기 처리는 성공했다..
그럼 왜 undefined가 뜨는걸까???
- 해결방법
정말 간단한 이유였다... requestLogin 로직을 return을 하지 않아서 생긴 문제였다...
export만 하면 될 거라는 생각에 return은 생각도 못하고 있었다 😞
이걸로 반나절을 고민했는데 그래도 해결해서 정말 다행이다...
원래라면 Login.jsx에 requestLogin 함수를 같이 작성해서 이런 문제를 겪을 일이 없었다.
나처럼 고민하고 있을 분이 계실까 봐 그래도 글을 작성해본다...
- 참고 사이트
'IT > React' 카테고리의 다른 글
[리액트] VSCode 익스텐션 추천 - 모듈 크기 알아보기(Import Cost) (0) | 2022.03.20 |
---|---|
[리액트] 프론트 로그인 구현- JWT 이용 (0) | 2022.03.04 |
[리액트] react-calendar로 캘린더 제작: 하이라이트 기능 (2) | 2022.01.09 |
[리액트] (해결) REST API 이용한 카카오 소셜 로그인 구현 (2) | 2022.01.02 |
[리액트/SCSS module] 리액트에서 CSS 애니메이션 쉽게 사용하기 (0) | 2021.11.13 |