如何一次更新所有实体 - NGRX?

Jan*_*d'u 1 ngrx angular ngrx-entity

我需要更新isExpanded所有实体中的属性。我尝试这样做,reduce()但得到了带有 key 的嵌套对象v:/

function updateAllIsExpanded(state, isExpanded): any {
  return Object.entries(state.entities).reduce(
    (p, [k, v]) => ({ ...p, [k]: { v, ...{ isExpanded } } }),
    {}
  );
}
Run Code Online (Sandbox Code Playgroud)

在 ngrx 文档中,我们可以找到类似 updateMany 的内容...但问题是我必须使用idand创建对象数组change...所以我想这不是一个好主意...

tim*_*ver 5

您可能正在寻找map.

map:通过定义map函数来更新集合中的多个实体,类似于Array.map。

adapter.map(
  (entity) => ({...entity, isExpanded }),
  state
);

Run Code Online (Sandbox Code Playgroud)