问题描述
嗨,我在我的 angular 项目中使用 NgRx 存储进行状态管理。
我的目标是清除动作分派时的几个状态属性。属性名称数组传递给操作。
// 动作
export const clearFields = createAction(
'[SC Base Data] Clear Fields',props<{ fields: string[] }>()
);
// 减速器
on(SCActions.clearFields,(state: SCState,fields: string[]) => ({
...state,SCData: {
...state.SCData
}
})),
/ 如何迭代字段数组并将状态属性值设置为空白
解决方法
如果您所说的“空白”是指 null
,我相信您正在寻找的是类似以下内容的内容:
on(SCActions.clearFields,(state: SCState,fields: string[]) => ({
// create an Object whose keys are all elements of fields and every value is null
const clearedState = {};
fields.forEach(field => {
clearedState[field] = null;
});
// return new copy of state nulling all fields from fields array
return {
...state,...clearedState
};
}))