Хранение редуктора в ngrx возвращает возвращаемое значение в объекте - PullRequest
0 голосов
/ 23 сентября 2018

Это мой второй вопрос, связанный с ngrx / store на сегодняшний день: (

Я использую ngrx / store в своем проекте Angular 5. Состояние приложения, которое я храню, выглядит примерно так (только для иллюстративных целей)

class AppState{
    private customerList: Customer [];
    private selectedCustomer: Customer;
    private countriesOperational: Country [];
}

Я создал один редуктор для объекта состояния следующим образом:

export function CustomerReducer(state: AppState = new AppState(), action: Action
    ){
        switch(action.type){
            case 'updateSelectedCustomer':
                   return {...state, selectedCustomer:action.payload} 
             //other cases here
            default:
                   return state;
        }
    }

Мой модуль имеет следующее:

StoreModule.forRoot({applicationState:CustomerReducer});

В моем компонентекогда я делаю store.select(state => state), полученный объект оборачивается во внутренний объект applicationState (из forRoot).

Поэтому я не могу использовать строго типизированные значения, поскольку applicationState не является частью AppState;он возвращается только редуктором. Я должен сделать что-то вроде этого:

let state$:Observable<any> = store.select(state => state);
state$.subscribe(newState => this.currentState = newState.applicationState);

на эту же проблему ссылаются здесь : есть ли здесь способ использовать строго типизированные значенияиз any. Например, это должно быть что-то вроде:

let state$:Observable<AppState> = store.select(state => state);
state$.subscribe(newState => this.currentState = newState);
...