Я пытаюсь реализовать функциональность redux-undo в моем приложении , используя пакет redux-undo .Когда я запускаю его локально с ng serve, он работает нормально и без ошибок.Но когда я переключаюсь на производство, состояние кажется неопределенным.Это моя основная настройка магазина:
export interface State {
elementState: {
past: ElementState[];
present: ElementState;
future: ElementState[];
_latestUnfiltered: ElementState;
group: any;
index: number;
limit: number;
}
}
export const reducers: ActionReducerMap<State> = {
elementState: undoable(
elementReducer,
{
limit: 10,
undoType: ActionTypes.UNDO,
redoType: ActionTypes.REDO,
filter: includeAction([DO_STUFF])
}
),
};
Это ошибка:
ОШИБКА TypeError: "t.elementState is undefined"
IЯ понимаю, что этот вопрос довольно общий, но, честно говоря, я понятия не имею, в чем может быть причина ошибки, поскольку она работает локально.Может ли кто-нибудь дать мне какой-нибудь вклад и указать мне правильное направление?
решено
найденное здесь решение
определение инъекции Tokenдля редукторов / индекса:
export const reducerToken = new InjectionToken<ActionReducerMap<AppState>>('Registered Reducers');
Object.assign(reducerToken, reducers);
определить фабрику getReducers (app.module):
export function getReducers() {
return reducers;
}
при регистрации модулей в app.module: зарегистрировать reducerToken и предоставить его в разделе provders:
imports:[
...
...
StoreModule.forRoot(reducerToken)
],
providers: [
{
provide: reducerToken,
useFactory: getReducers
}