需要 reducer 将单个对象添加到我状态的每个 *child* 项目
Need reducer to add to every *child* item of my state a single object
我有一个 ngrx 商店(打字稿),我想在我的 EntityAdapter reducer 中检查一个动作,然后将动作的有效负载添加到商店中我项目的每个子项。下面的例子
我们在状态中有一个对象数组,每个对象都有一个属性,我们称它为数组X。
[
{x:[]}
,{x:[]}
,{x:[]}
]
我想要结束的是:
[
{x:[{y}]}
,{x:[{y}]}
,{x:[{y}]}
]
reducer运行后
这是它的核心:
export const permissionWithRolesReducer = createReducer(initialPermissionWithRolesState,
on(actions.loadPermissionsWithRolesSuccess,(state,{permissionWithRoles: permissionWithRoles}) =>{
return permissionWithRolesAdapter.upsertMany(permissionWithRoles, state)}),
on(actions.addRole,(state,{newRole: newRole}) =>{
return permissionWithRolesAdapter.???}));
结果是添加权限下的角色
商店包含权限列表。
每个权限都包含它适用的角色列表。
当我们添加一个新角色时,我想将它添加到我商店中的每个权限中。
有什么想法吗?
您可以使用 map
,它映射集合中的每个实体(类似于 javascript 中的 [].map()
)。
return permissionWithRolesAdapter.map(entity => ({ ...entity, y: action.y }), state)
我有一个 ngrx 商店(打字稿),我想在我的 EntityAdapter reducer 中检查一个动作,然后将动作的有效负载添加到商店中我项目的每个子项。下面的例子
我们在状态中有一个对象数组,每个对象都有一个属性,我们称它为数组X。
[
{x:[]}
,{x:[]}
,{x:[]}
]
我想要结束的是:
[
{x:[{y}]}
,{x:[{y}]}
,{x:[{y}]}
]
reducer运行后
这是它的核心:
export const permissionWithRolesReducer = createReducer(initialPermissionWithRolesState,
on(actions.loadPermissionsWithRolesSuccess,(state,{permissionWithRoles: permissionWithRoles}) =>{
return permissionWithRolesAdapter.upsertMany(permissionWithRoles, state)}),
on(actions.addRole,(state,{newRole: newRole}) =>{
return permissionWithRolesAdapter.???}));
结果是添加权限下的角色
商店包含权限列表。 每个权限都包含它适用的角色列表。 当我们添加一个新角色时,我想将它添加到我商店中的每个权限中。
有什么想法吗?
您可以使用 map
,它映射集合中的每个实体(类似于 javascript 中的 [].map()
)。
return permissionWithRolesAdapter.map(entity => ({ ...entity, y: action.y }), state)