Использование только одного редуктора выдает ошибки с ngrx - PullRequest
0 голосов
/ 15 марта 2019

Я работаю над Angular с магазином, и я не могу построить свой проект из-за некоторых излишних ошибок.

На самом деле, единственный способ заставить мой магазин работать с этой конфигурацией

app.module.ts - импорт

StoreModule.forRoot({applicationState: AppReducer}),

app.reducer.ts

export function AppReducer(state = initialState, action: Action): AppState {
switch (action.type) {
    case types....:
      return {...state, ...};
...

В моих компонентах

this.store.select(s => s.applicationState.myValue).subscribe()...

Он не собирается правильно, но когда я работаю дважды, я могу, по крайней мере, протестировать свой проект. Поскольку у меня нет подсостояния (у моего Appstate полно номеров, массивов и т. Д., Но нет подсостояния) и только одного редуктора, я не понимаю, как мне объявить свой ActionMapReducer в моем app.module.ts, чтобы иметь возможность подписаться на мои ценности такие:

this.store.select('myValue').subscribe(..)

Я пробовал много вещей, просмотрел много примеров, но я не могу понять, как это исправить, и мой проект не может быть скомпилирован из-за этого: (.

1 Ответ

0 голосов
/ 20 марта 2019

Кажется, вы не можете использовать хранилище ngrx без ReducerMap, даже если у вас есть только один редуктор. (

Это делает работу

index.ts

export interface State {
    state: AppState; // contains my store, real 'state'
}

export const reducers: ActionReducerMap<State> = { // State isnt my 'real' state !
  state: AppReducer
};

export const getValueState = createFeatureSelector<AppState>('state')
export const getValue = createSelector(getValueState, (state: AppState) => state.value);

app.moduls.ts - импорт

StoreModule.forRoot(reducers)

component.ts

this.store.select(getValue).subscribe(...);

Я до сих пор не могу понять, почему я не смог использовать селектор типа select ('myValue') ... но теперь все нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...