답변 감사합니다
알려주신대로 하니까 일단 에러 메세지를 얻어올수 있었어여
에러 메세지를 스테이트 변수에 저장하고 그리고 알림 메세지가
한번만 출력되도록 하기 위해 아래처럼 고쳤습니다
작성
·
270
0
안녕하세요 zerocho 님
질문이 있습니다.
현재 라우터 로직의 403 에러에 해당할 경우 (본인의 글을 리트윗 하거나 이미 리트윗한 글을 리트윗할때) 아래와 같이 응답을 하는데
if (!post) {
return res.status(403).send('존재하지 않는 게시글입니다.');
}
if (req.user.id === post.UserId || (post.Retweet && post.Retweet.UserId === req.user.id)) {
return res.status(403).send('자신의 글은 리트윗할 수 없습니다.');
}
function retweetAPI(data) {
console.log("data : ", data);
return axios.post(`/post/${data}/retweet`);
}
function* retweet(action) {
console.log("saga 실행 확인");
try {
console.log("retweetAPI 호출 before");
const result = yield call(retweetAPI, action.data);
console.log("retweetAPI 호출 after");
console.log("result : ", result);
yield put({
type: RETWEET_SUCCESS,
data: result.data,
});
} catch (err) {
console.error("retweet error from saga : ", err);
yield put({
type: RETWEET_FAILURE,
error: err,
});
}
}
case RETWEET_FAILURE:
draft.retweetLoading = false;
draft.retweetError = action.error.message;
break;
const onRetweet = useCallback(() => {
if (!id) {
return alert('로그인이 필요합니다.');
}
dispatch({
type: RETWEET_REQUEST,
data: post.id,
});
alert("retweetError : " + retweetError)
if (retweetError != "") {
notification.open({
message: '알림 메세지',
description:
'본인의 글은 리트윗할수 없습니다 : ', retweetError,
onClick: () => {
console.log('Notification Clicked!');
},
});
}
}, [id]);
return res.status(403).send('자신의 글은 리트윗할 수 없습니다.');