-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
dispatch를 사용하는 함수 안에 async await
21.04.07 10:15 작성 조회수 2.57k
0
회원가입을 요청하는 로직안에 성공과 실패에 따른 분기문을 한곳에 실행하고 싶은데 방법이 있나요?
(예시)
const onSubmit = useCallback(async () => {
try {
const result = await dispatch({
type: SIGN_UP_REQUEST,
data: { email, password, nickname },
});
message
.success("회원가입에 성공하셨습니다.")
.then(() => Router.push("/").then());
} catch (signupError) {
message.error(JSON.stringify(signupError, null, 4)).then();
}
}, []);
답변을 작성해보세요.
1
0
yjkwon9073
질문자2021.04.07
1. axios.post 후에 then cath 붙이 된다는것은 사가나 thunk에서 사용하는 로직안을 뜻하는건가요?
2. 현 로직에 dispatch 대신 axios.post를 사용하면 된다는 뜻인가요?
=> 이렇게 사용하게 된다면 saga의 takelatest나 takeEvery같은 saga 헬퍼 기능은 쓰기 힘들어 지겠네요.
const onSubmit = useCallback(async () => {
try {
const response = await axios.post("/user", { email, password, nickname });
message.success("회원가입에 성공하셨습니다.").then(() => Router.push("/").then());
} catch (signupError) {
message.error(JSON.stringify(signupError, null, 4)).then();
}
}, []);
0
조현영
지식공유자2021.04.07
dispatch를 하는순간 로직이 리덕스쪽으로 이동해서 어렵습니다.
그냥 여기서 axios.post 후에 then catch 븥이시면 됩니다.
답변 3