저는 단순 (또는 고급) 감속기를 제공하는 일부 공장 기능을 작성했습니다. 내 캐주얼 행동의 대부분을 처리하는 완전한 기능 감속기로를 구성 할 수있는 그 공장 기능과 redux
에서 combineReducers
를 사용Redux에서 고차원 감속기를 작성하십시오.
export const reduceRequestState = (requestTypes: RequestActionTypes) =>
(state: RequestState = RequestState.None, action: Action): RequestState => {
switch (action.type) {
case requestTypes.start:
return RequestState.Waiting;
case requestTypes.success:
return RequestState.Success;
case requestTypes.error:
return RequestState.Error;
case requestTypes.reset:
return RequestState.None;
default:
return state;
}
};
: - 예를 들어 (간단한 작업 유형에베이스는 값으로 RequestState
상수를 설정). 그건 내가 읽을 수있는 코드를 제공하고 어리석은 실수를 저 지르지 못하게한다.
팩토리는 일반적인 작업에는 좋지만 저장소의 일부를 수정해야하는 사용자 지정 동작 (작업 유형에 대해)을 추가해야 할 때 해당 작업을 처리 할 감속기의 사용자 지정 부분을 작성하고 싶습니다. 나를. 아이디어는 반복 방식으로 감속기를 구성하므로 배열의 경우 combineReducers
입니다. 이렇게하면 감속기를 만드는 공장을 사용할 수 있고 특정 감속기와 결합하여 특정 작업을 처리 할 수 있습니다. 배열에 대한 combineReducers
은 첫 번째 배열을 호출하고 아무것도 변경되지 않았 음을 인식하고 두 번째 (사용자 정의) 배열을 호출하여 해당 배열을 처리합니다.
제가 해결책을 찾고 있었고 redux-actions
을 찾았지만 동작과 감속기가 내가 익숙한 것과 약간 다른 의미를 만드는 방식을 좋아하지 않습니다. 어쩌면 나는 그것을 얻지 못할 것이지만, 결국은 감속 제가 순수한 기능으로 쓰여지는 것을보고 싶어합니다.
나는 길을 보여 줄 몇 가지 힌트를 찾고 있습니다. 어떤 종류의 고차원 감속기를 사용하고 어떤 방식 으로든 결합하는 라이브러리 또는 프로젝트가 있습니까? 위에서 설명한 것처럼 감속기를 구성하는 데 단점이 있습니까?