Почему использование reducerManager дает мне неправильное состояние
я использую
reducerManager
чтобы добавить мои редукторы внутрь глобального объекта.
если например я напишу
const reducer = createReducer( initialState, on( doSomething, state => state ) );
тогда:
reducerManager.addReducer( 'reducer', reducer );
и в моем компоненте используйте select, мне нужно написать:
val:Observable<any> = this.store.select( state => state.reducer.val );
Мой вопрос, почему я не могу просто написать:
val:Observable<any> = this.store.select( state => state.val );
в этом смысл использования менеджера редукторов или я что-то не так понимаю?
Я добавил много редукторов в свой менеджер, и после записи имени в качестве свойства состояния, чтобы получить мое окончательное значение, я всегда получаю одно и то же состояние хранилища (кстати, эти состояния являются общими, какова цель этого?)
1 ответ
Состояние является глобальным объектом. Используя
reducerManager.addReducer( 'reducer', reducer );
вы добавляете редуктор к глобальному объекту с ключом as.
Таким образом, ваше состояние становится
{
reducer: reducer()
}
Для чтения из хранилища вы всегда выбираете из корневого объекта, поэтому вам нужно выбрать состояние из
reducer
имущество.