반응형
공리의 오류에 대한 내 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
. 그리고 환원요청이나 다른 미들웨어와 통합하는 것이 더 쉽다.
반응형
'Programing' 카테고리의 다른 글
파일 업로드(vuetify) (0) | 2022.04.03 |
---|---|
알 수 없는 요소: - 구성 요소를 올바르게 등록하셨습니까? 부에루터 (0) | 2022.04.02 |
(vue 구성 요소 대신) javascript 파일에서 vuex 상태를 가져오는 방법 (0) | 2022.04.02 |
typecript에서 markdown(.md) 파일을 가져오는 방법 (0) | 2022.04.02 |
반응 후크 - 여러 가지 사용 상태 후크를 테스트하는 방법 (0) | 2022.04.02 |