• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

saga 제너레이터 함수에서 catch를 탔을때

21.12.27 17:31 작성 조회수 83

0

function *addPost(action){
    try{
        yield delay(2000);
        const result = yield call(addPostAPI,action.data);
        yield put({
            type:"ADD_POST_SUCCESS",
            data:result.data
        });
    }catch (err) {
        yield put({
            type:"ADD_POST_FAILURE",
            data:err.response.data
        });
    }
}

이런식으로 addPost 가 있고 실제로 axios 로 네트워크 요청하게하면 오류가 떠서 catch 로 갈수도 있는데 이때 보통 어떤식으로 처리하나요?

reducer 에서 initialState 에는 logInError 가 있는데 UserProfile.js에서는 loginError 관련 처리가 없는것같아서요

답변 1

답변을 작성해보세요.

1

ADD_POST_FAILURE 리듀서에서 받은 action.data(에러 내용)를 리덕스에 저장하고, 컴포넌트에서는 에러 데이터를 useEffect로 감시하고 있다가 에러 데이터가 발생하면 그에 따라 처리합니다.