질문 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", (req, res) => {
// 회원 가입 할때 필요한 정보들을 client에서 가져오면
// 그것들을 데이터 베이스에 넣어준다.
const user = new User(req.body);
user.save((err, userInfo) => {
if (err) return res.json({ success: false, err });
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_USER, REGISTER_USER } from "../_actions/types";
export default function (state = {}, action) {
switch (action.type) {
case LOGIN_USER:
return { ...state, loginSuccess: action.payload };
case REGISTER_USER:
return { ...state, register: action.payload };
default:
return { ...state };
}
이게 가능한 이유는 _reducers> index.js에서
import { combineReducers } from "redux";
import user from "./user_reducer";
const rootReducer = combineReducers({
user,
});
export default rootReducer;
이것을 해주었기때문에 자동으로 인식(?)해서 타입에맞는 코드가 실행이 되는건가요?