【发布时间】:2018-08-26 15:02:31
【问题描述】:
在我的 Angular 应用程序中使用 Redux,并在 Switch 语句 内的每个 Case 中简单地创建一个新状态。然而,即使我的代码工作得很好,我对 我在每个案例中克隆我的对象 的方式感到不舒服,所以有没有 更好的 或 更清洁的克隆方式?如何改进案例陈述?提前致谢!
这是我的
界面:
export interface AppState {
session: {},
uiState: {
summary: {
summaryDetail: {
headerTitle: string;
expandSummaryDetailPanel: boolean;
showSummaryDetail: boolean;
someProperty: string;
}
showSummaryTab: boolean;
}
}
};
初始状态:
export const initialState: AppState = {
session: {},
uiState: {
summary: {
summaryDetail: {
headerTitle: 'new title',
expandSummaryDetailPanel: false,
showSummaryDetail: false,
someProperty: ''
},
showSummaryTab: false,
}
}
};
切换语句:
export function appReducer(state = initialState, action: appActions.AppAction) {
case appActions.EXPAND_SUMMARY_DETAIL_PANEL: {
return {
...state,
uiState: {
summary: {
...state.uiState.summary,
summaryDetail: {
...state.uiState.summary.summaryDetail,
expandSummaryDetailPanel: action.payload
}
}
}
}
}
}
【问题讨论】:
标签: angular ecmascript-6 redux ngrx ngrx-store