인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

반가우면반갑다고해님의 프로필 이미지
반가우면반갑다고해

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #31 회원 가입 페이지

질문있습니다.

작성

·

203

0

질문 1: 

dispatch(registerUser(body)).then((response=> {
      if (response.payload.success) {
        props.history.push("/login");
      } else {
        alert("Failed to sign up");
      }
   });

resopnse.payload.success에서 success는 백엔드에서 의 이 success를 말하는건가요? 정상적으로 응답하지못햇을경우 success가 당연히 없는거죠..?

app.post("/api/users/register", (reqres=> {
  // 회원 가입 할때 필요한 정보들을 client에서 가져오면
  // 그것들을 데이터 베이스에 넣어준다.

  const user = new User(req.body);

  user.save((erruserInfo=> {
    if (errreturn res.json({ success: falseerr });
    return res.status(200).json({ success: true });
  });
});

질문2 :user_action.js코드에 대한 질문입니다.

export function registerUser(dataToSubmit) {
  const request = axios
    .post("/api/users/register"dataToSubmit)
    .then((response=> response.data);

  return {
    type: REGISTER_USER,
    payload: request,
  };
}

여기서 리턴 부분에대한 질문인데요,

저렇게 리턴을 해줄경우 user_reducer.js 파일에있는 아래 코드중에서 리턴된 타입에 맞는 코드가 실행되는거같은데 

import { LOGIN_USERREGISTER_USER } from "../_actions/types";

export default function (state = {}, action) {
  switch (action.type) {
    case LOGIN_USER:
      return { ...stateloginSuccess: action.payload };

    case REGISTER_USER:
      return { ...stateregister: action.payload };

    default:
      return { ...state };
 }

이게 가능한 이유는 _reducers> index.js에서 

import { combineReducers } from "redux";
import user from "./user_reducer";

const rootReducer = combineReducers({
  user,
});

export default rootReducer;

이것을 해주었기때문에 자동으로 인식(?)해서 타입에맞는 코드가 실행이 되는건가요?

답변 1

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

넵  ^^  1번 2번 모두 잘이해하셨습니다 ~ !!!!      

반가우면반갑다고해님의 프로필 이미지
반가우면반갑다고해

작성한 질문수

질문하기