У меня проблема с выяснением того, как создать иерархическое хранилище в Angular. Я хотел бы иметь несколько редукторов, которые работают на определенной части приложения.
Вот описание: это приложение по подбору персонала. У меня есть модуль таланта (сотрудника), данные которого разбиты на пять разделов: опыт, образование, справочная проверка, местоположение и зарплата, предпочтения по работе.
Каждый раздел содержит довольно сложную логику для удовлетворения бизнес-ожиданий. Мы обновляем некоторые случаи для рынка, и нам нужно обмениваться данными между компонентами по нескольким частям.
Итак, начните с корневого модуля. Я определил корневое состояние для модуля талантов.
Я попытался использовать зернокомбайны типаину, как описано в этом посте: Угловые 6 / NGRX комбайновые редукторы
Итак, начнем с корневого модуля. Я определил корневое состояние для модуля талантов.
export interface ITalentState {
profile: IProfileState;
}
Вот редуктор для состояния талантов.
export function talentReducer(state = talentInitialState, action: TalentActions): ITalentState {
switch(action.type) {
case TalentActionTypes.SetProfile:
return {
...state,
profile: action.profileData
}
default: return state;
}
}
ProfileState определяется какэто
export interface IProfileState {
expertiseState: IExpertiseState;
}
Вот раздел экспертизы:
export interface IExpertiseState {
expertiseQuestions: ExpertiseQuestions;
error: string;
}
Раздел экспертизы
function expertiseReducer(state, action)
switch(action.type) {
case ExpertiseActionsTypes.LoadFailed:
return {
...state,
expertiseQuestions: new ExpertiseQuestions(),
error: action.message
}
case ExpertiseActionsTypes.LoadSuccess:
return {
...state,
expertiseQuestions: action.questions,
error: ''
}
default: return state;
}
}
Я ожидаю, что есть способ добиться гранулирования магазина и разделить редукторы так,они более управляемы, но в отладчике я вижу только то, что методы хранилища знаний вызываются, но никогда не вызывается редуктор, а значения в хранилище не обновляются.