ngrx/store init存储无法正常工作

SEY*_*_91 2 redux ngrx angular ngrx-store-4.0

我的商店包含以下减速机:

export const centralStampState = {
  layoutState : layoutReducer, //this one is not initialized
  eventTabState : eventTabReducer,
  eventTimelineState: eventTimelineReducer,
  eventWorkflowState : eventWorkflowReducer,
  displayLayerState : displayLayerReducer,
  treeState : TreeReducer
}
Run Code Online (Sandbox Code Playgroud)

问题是Angular启动所有的reducers,只有一个' layoutState'在触发第一个动作后启动(导致访问a undefined Object).

我对所有的reducers和状态都遵循相同的实现,我没有弄清楚这种奇怪行为的原因.

以下是初始化后和第一个操作后的存储状态 在此输入图像描述

在此输入图像描述

我对所有减速器的实现都是一样的.

export function layoutReducer(state: LayoutState = INITIAL_LAYOUT_STATE, action: Action) : LayoutState{
  switch (action.type){
    case UPDATE_SPLIT_CONFIG_DIMENSION :
      return updateSplitConfigDimension(state, action);
    case DISABLE_SPLIT_CONFIGURATION:
      return state;
    case UPDATE_SPLIT_AREA_VISIBILITY :
      return state;
    case RESTORE_DEFAULT_CONFIG_LAYOUT :
      return state;
  }
}

export function eventTabReducer(state: EventTabState = EVENT_TAB_INITIAL_STATE, action: CSAction): EventTabState {
  switch (action.type) {
    case LOAD_SUPPORTED_REPORT_FIELDS:
          return state;
    default:
      return state;
  }
}
Run Code Online (Sandbox Code Playgroud)

SEY*_*_91 8

我发现它,如果它是JAVA而不是Typescript,代码将无法编译!!!!!!!!

我错过了default在开关盒内的语句,当角是处理行动@ngrx/store/initlayoutReducer会忽略这个动作,似乎角将返回undefined如果没有找到默认的声明.

export function layoutReducer(state: LayoutState = INITIAL_LAYOUT_STATE, action: Action) : LayoutState{
  switch (action.type){
    case UPDATE_SPLIT_CONFIG_DIMENSION :
      return updateSplitConfigDimension(state, action);
    case DISABLE_SPLIT_CONFIGURATION:
      return state;
    case UPDATE_SPLIT_AREA_VISIBILITY :
      return state;
    case RESTORE_DEFAULT_CONFIG_LAYOUT :
      return state;
    default:
      return state;// with this Angular can perform the ngrx init action
  }
}
Run Code Online (Sandbox Code Playgroud)