仅使用一个reducer会因ngrx

时间:2019-03-15 16:19:56

标签: angular dictionary redux store ngrx

我正在与一家商店合作开发Angular,由于某些redux错误,我无法构建项目。

实际上,使我的商店正常运转的唯一方法是使用此配置

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充满了数字,数组等,但没有子状态),并且只有一个reducer,所以我不知道如何在我的app.module.ts中声明ActionMapReducer以便能够订阅我的价值观是这样的:

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

我尝试了很多事情,研究了许多示例,但是我不知道如何解决该问题,因此,我的项目无法构建:(。

1 个答案:

答案 0 :(得分:0)

即使没有一台reducer,似乎如果没有ReducerMap也无法使用ngrx的存储。 :(

这可以完成工作

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')...,但是现在很好。