angular - ngrx:集合中每个元素的加载状态
问题描述
我有一个带有项目列表的页面状态。每个项目都有自己的加载状态,具体取决于可以在其中进行的少数操作。
我想知道更新项目加载状态的最佳方法是什么:
- 扩展具有
loading
属性的项目的模型; - 将
loadingIds
属性添加到状态对象并从中添加/删除 id。在这种情况下,可以使用Set
吗?这应该Set
是不可变的并且每次都重新创建吗?或者只是在其中使用add
/delete
方法?
也许还有其他不错的选择?我真的不喜欢我上面描述的任何方式..
解决方案
物品就是物品,加载状态是加载状态。您可以混合使用它们,但更好的方法是保持简单。
我建议简单地实现loadingIds
允许获取当前加载状态的选择器。
而不是Set
使用 id 数组。
添加加载
state.loadingIds = [...state.loadingIds, id];
检查加载
state.loadingIds.indexOf(id) !== -1;
删除加载
state.loadingIds = state.loadingIds.filter(loadingId => loadingId !== id);
推荐阅读
- postgresql - 使用 Postgresql、c# 和 MVC 在 Quartz 中未触发执行方法
- angular - 过滤异步数据并将数据反映到表中
- c# - 为什么 Ajax.BeginFom 不退出?
- go - 通道在循环中返回相同的值
- html - 在网格中调整一个 div 的大小时,防止其他 div 移动
- mysql - NodeJS - 获取新创建的 ID 后更新 MySQL 字段
- android - 删除 jcenter() 后如何解决 Android Studio 4.2 构建错误?
- asp.net-core-mvc - 在 ASP.NET Core 中注册具有特定角色的第一个用户(如何修改 AccountController 操作)
- c - 为什么 fread 和 fwrite 给出错误“包含太多参数”?
- tensorflow - 在 tensorflow 分词器中获取词汇量的大小