【发布时间】:2020-09-28 20:08:32
【问题描述】:
我正在开发一个在 Redux 中具有标准化状态的应用程序。我的一个实体是另一个实体的“父”实体,因此当我删除该父实体时,我想删除与该父实体关联的所有子实体。
为了删除单个实体(1个ID),我一直在使用这种模式:
// ../reducers/entity.js
case DELETE_ENTITY: {
const entityId = action.payload.entityId;
const {[entityId]: ignore, ...stateWithoutEntity} = state;
return stateWithoutEntity;
}
对于上下文,上述 sn-p 中的state 的形状如下:
{
ID_1: {
//entity 1 value
},
ID_2: {
//entity 2 value
},
// etc...
}
是否有类似的模式来删除多个实体(n 个 ID)的列表?
换句话说,是否有一种模式可以在复制 JavaScript 对象的同时排除多个键?
// ../reducers/entity.js
case DELETE_PARENT_ENTITY: {
const parentId = action.payload.parentId;
const childrenIdsToRemove = action.payload.children;
// How do I clone the state while excluding each ID in childrenIdsToRemove?
}
【问题讨论】:
-
使用
Object.entries/filter&reduce你可以创建任何你想要的过滤逻辑。 -
您可能想查看this one
标签: javascript redux immutability