NGRX - 重置分配减速器初始状态的状态是否正确?

时间:2021-03-03 12:16:10

标签: javascript angular ngrx

我有一个以这种方式定义的 ngrx 状态:

initialSidebarState: {
  companyList: [];
  companyId: null;

}

我正在使用 ngrx,我有一个名为“changeCompany”的操作: createAction('[Sidebar] Change Company', props<{ companyId: number }>());

我有一个以这种方式定义的reducer函数:

on(
SidebarAction.changeCOmpany,
(state, action): SidebarState => {
  return {
    ...state,
    companyList: initialSidebarState.companyList,
    companyId: action.companyId
  };
}

),

我恢复了分配 initialSidebarState.companyList 属性的公司列表,这是否正确?

1 个答案:

答案 0 :(得分:0)

是的,你可以做到。但如果此列表默认不为空,我可能会建议使用默认值为 constcompanyList。如果默认为空,就在reducer中分配一个空数组即可。

const DEFAULT_COMPANY_LIST = [company, company, ...]

initialSidebarState: {
  companyList: DEFAULT_COMPANY_LIST;
  companyId: null;
}

on(
  SidebarAction.changeCOmpany,
  (state, { companyId }): SidebarState => ({
    ...state,
    companyList: DEFAULT_COMPANY_LIST, // If you just want to clear it => companyList: []
    companyId
  })
),