NGRX实体-如何正确处理isSelected属性



我有一个表,可以在其中单击每一行,然后它应该更改颜色,稍后用于过滤所选项目。每一行我都有一个项目:

interface Item{
id:string;
name:string;
price:number;
}

我想知道关于EntityStateAdapter有什么更好的方法:

  1. isSelected属性添加到Item,然后更新这部分状态

  1. 扩展适配器状态并将所选项目存储在阵列中
export const adapter: EntityAdapter<Item> = createEntityAdapter<Item>();
export const initialState: EntityState<Item> = adapter.getInitialState({
selectedItems:Array<string>
})

IMO第一种方法更好。将属性添加到Item更容易,因为稍后我可以通过item.isSelected轻松地反映表中每行的状态。我想听听你的经历。

我更喜欢使用selectedItems,原因:

  • 它是"元数据";添加到实体顶部
  • 更容易更新,例如,如果您选择或取消选择,您可以简单地更新数组,而不是在更新之前查找实体

最新更新