현재 Redux 응용 프로그램에서 API의 데이터를 가져 오는 3 개의 개별 감속기가있는 상황이 있습니다. 내 이경 하나의 예는 다음과 같습니다Redux 별도의 감속기에서 하나의 동작 유형을 사용할 수 있습니까?
const INITIAL_STATE = {
data: [],
loading: false,
error: ''
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case GET_ALL_ORDERS_START:
return {
...state,
loading: true
};
case GET_ALL_ORDERS_SUCCESS:
return {
...state,
allOrders: action.payload,
loading: false
};
case GET_ALL_ORDERS_FAIL:
return {
...state,
loading: false,
error: action.payload
};
default:
return state;
}
};
참고로드 및 오류 상태는, 이러한 각 전류 감속기 동일하며, API에서 가져 오는 데이터를 포함하는 I 작성 이후의 감속기에 대한 것입니다.
상태로드 및 오류 부분에만 사용되는 추가 감속기를 추가하고 싶습니다. 다른 3 명은 데이터를 저장합니다.
이 나에게 줄 것입니다 :
데이터 감속기 × 3
const INITIAL_STATE = {
data: []
// any other state in the future
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case GET_ALL_ORDERS_SUCCESS:
return {
...state,
allOrders: action.payload
};
default:
return state;
}
};
로드/오류 감속기를
const INITIAL_STATE = {
loading: false,
error: ''
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case GET_ALL_ORDERS_START:
return {
...state,
loading: true
};
case GET_ALL_ORDERS_SUCCESS:
return {
...state,
loading: false
};
case GET_ALL_ORDERS_FAIL:
return {
...state,
loading: false,
error: action.payload
};
default:
return state;
}
};
(전체 응용 프로그램에 대한로드/오류를 처리)이 방법을 볼 수 있듯이 GET_ALL_ORDER_SUCCESS 액션 유형은 2 개의 개별 감속기에서 사용됩니다. 제 질문은이게 괜찮습니까? 아니면 국제 대회에 반대합니까?
미리 감사드립니다.
덕분에 아주 잘 작동하는 것 같다하지만 난 그냥 설명을 원했다 나중에 @ £ $에서 나를 물지는 않을 것입니다. – mtwallet
로깅에 신경 쓰면, 디버깅하기가 덜 명백하고 어렵게되는 모든 동작이 트레이드 오프입니다. 여러 동작이 더 명확한 경우. 그 균형에 대해 생각하는 것 같아 – julianljk
물론입니다. 주제에 대한 자세한 내용은 http://redux.js.org/docs/faq/Actions.html#actions-reducer-mappings 및 http://redux.js.org/docs/recipes/StructuringReducers.html을 참조하십시오. – markerikson