Programing

공리의 오류에 대한 내 Redex 처리에서 다른 작업을 사용해야 하는가 아니면 추가 데이터를 첨부한 동일한 작업을 사용해야 하는가?

c10106 2022. 4. 2. 09:45
반응형

공리의 오류에 대한 내 Redex 처리에서 다른 작업을 사용해야 하는가 아니면 추가 데이터를 첨부한 동일한 작업을 사용해야 하는가?

Redex가 있는 Axios와 Thunk 미들웨어를 사용하여 api로 전화해서 거래 목록을 받아보고 있어.API가 반환하는 모든 오류에는 오류 개체도 반환된다.해당 오류 개체가 형식임

{
  "error": {
    "id": "string",
    "name": "string",
    "detail": "string"
  }
}

400을 받으면 일반적인 오류가 발생하지만 404는 트랜잭션을 찾을 수 없다는 것을 의미한다.내가 알고 싶은 것은 반응을 구문 분석하기 위해 논리가 어디에 살아야 하는가이다.작업 작성자의 응답을 구문 분석하여 다음과 같은 방법으로 별도의 작업을 전송해야 하는가?

catch (e) {
  if (e.response) {
    if (e.response.status === 400) {
      //failed for some reason
      dispatch({type: TRANSACTION_REQUEST_ERROR, data: e.response.data})
    }
    if(e.response.status === 404) {
      //no transactions, no problem. 
      dispatch({type: NO_TRANSACTIONS_FOUND, data: e.response.data})
    }
  }
}

또는 동일한 조치를 사용하고 해당 논리를 환원기에 위임하여 상태를 업데이트하는 방법에 대한 결정을 내리는 데 필요한 응답 정보를 포함해야 하는가?

catch (e) {
  if (e.response) {
    dispatch({type: TRANSACTION_REQUEST_ERROR, data: e.response.data})
  }
}

//축소

switch(action.type) {
  case TRANSACTION_REQUEST_ERROR:
   if(action.data.error.id === 'some id)
    //update some state
   else
     //do something else
}

아니면, 6개, 6개인가?

나는 오류에 대해 한 가지 조치만 사용하고 환원기에서 케이스를 처리하겠다.이렇게 하면 앱의 모든 요청이 이형성이며 3가지 동작만 가질 수 있다._REQUEST,_SUCCESS,_ERROR. 그리고 환원요청이나 다른 미들웨어와 통합하는 것이 더 쉽다.

참조URL: https://stackoverflow.com/questions/61651962/should-my-redux-handling-of-errors-from-axios-use-different-actions-or-the-same

반응형