问题标签 [ngrx-entity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ngrx - NGRX; 如何对适配器数据应用过滤器
我有这段代码,我想在上面应用过滤器。状态使用 EntityState 和 Adapter。getAllObjects 需要获取 parentId 为 13 的类别,而 getAllTextures 获取剩余的类别。
这是减速机:
是否可以按条件从适配器中选择数据?如果是这样,怎么做?
angular - 我的操作没有调用关联的减速器和效果
我的行动——
相关效果——
和减速机 -
当我调用动作时 -
动作运行,其中写入的控制台被打印,但相关的效果和减速器不运行。
注意:我正在使用 angular 8 的 ngrx 商店实体。
angular - Angular ngrx-data 将服务响应写入单独的 entityCache 部分
我目前正在开发一个使用ngrx-data 来存储信息的项目。到目前为止它工作得很好,但现在我想存储来自端点的实体数据,它在它的响应中给了我两种不同的实体类型。
现在我想将它们分别保存在entityCache
ngrx-data 中。为此,我在 Angular 中实现了基本的 HTTP 服务,它扩展了DefaultDataService
. 我将其集成到我的外观中并添加了必要的元数据。
我能够从商店“整体”获取所有收到的信息,但我认为我失去了使用 ngrx-data 获得的许多优势(比如获取一组 id)。
有没有办法规范化/拆分数据并将其写入不同的部分entityCache
?
非常感谢您的任何提示。
ngrx - 如果我收到的内容类型是 JSON-LD + Hydra,我应该使用 ngrx-data 吗?
我喜欢 JSON-LD、Hydra 的优势,并且刚刚了解了 NgRx/data。
我尝试在没有自定义的情况下使用它,这显然不起作用。今天我花了几个小时在文档上,这给我留下了更多问题。
重要的是,我不想牺牲任何关于收藏的信息。所以我不能只使用自定义效果。
关于如何解决这个问题的任何想法?
收藏回复:
单一响应:
angular - 使用 NgRx 为同一个组件创建不同的状态
我的方案是为同一组件创建不同的独立状态,因此当一个组件发生任何变化时,不会影响其他组件状态。
我面临的问题是,每当我更改一个组件中的任何内容时,它也会更新其他组件状态
在我的情况下,我正在创建一个数据选项卡,在其中我使用不同的对象数据数组动态加载相同的组件。因此,如果我更新一个选项卡中的任何数据,则另一个选项卡不应受到影响。
NgRx 可以吗?
angular - 如何将泛型类型传递给泛型选择器?
我遇到了 Typescript 的问题,我不知道如何解决它...
我创建了一个通用状态来管理多个实体。每个实体都有自己的接口,每个实体都是泛型类型的一部分(在我的示例中称为引用)。
我想要的:当有人需要从这个状态获取实体时,他在select
方法(或selectReference
?)中指定所需的接口,然后 Typescript 检查给定接口是否是Reference
类型别名的一部分。
我的接口和类型别名:
我的选择器:
我的组件:
在此示例中, ts linter 显示此错误:Type 'Reference' is not assignable to type 'A'
.
我怎样才能做到这一点 ?
提前谢谢你:)
ngrx - 整个州或部分的 ngrx/实体
我不确定我是否理解@ngrx/entity
包。当然有例子,但我没有发现任何一个状态大于一个属性/主题的例子。
所以在使用@ngrx/entity
我的子状态之前,如下所示。是的,它实际上是一个子状态。这意味着我对每个功能进行了分离,但它仍然不是单一属性接口。我有几个模型接口,State 由它们组成。那些是我想用“实体特征”替换的数组。从示例中我看到实体适用于整个州?
那么要使用 Enity 我应该怎么做呢?
我应该用什么来代替?
我有很多属性。
或者
每个模型接口ListItems
,FooObject
应该扩展EntityState
吗?
angular - 在特征内选择数据的ngrx/entity问题
我正在尝试创建一个具有特征状态和组合减速器的库。
我的特征缩减器如下所示:
索引.ts
bookEntriesFeatures 看起来像这样:
book-entry.reducer.ts
在我的功能模块中,我使用我的功能密钥和功能缩减器导入 StoreModule.forFeature()。
不,我正在尝试根据选定的 id 选择一个条目。因此,我触发了一个操作,成功地将所选条目的 id 添加到我的图书条目状态。
要选择所选条目,我的功能选择器中有以下选择器:
索引.ts
当通过另一个调度的动作加载条目时,选择器只被调用一次(在数据加载之前)。我发现当我在功能选择器中从 bookEntriesAdapter 创建选择器时,它可以工作。像这样:
索引.ts
但为什么?我有点迷失了,试图理解为什么这不起作用。
上面不起作用的示例来自官方的ngrx doc(https://ngrx.io/guide/entity/adapter)。工作的一个来自ngrx/platform示例代码(https://github.com/ngrx/platform/blob/master/projects/example-app/src/app/books/reducers/index.ts)。
我认为没有必要,但我没有扩展 root-app-store-state,因为我无权访问它,因为它是一个库(试图绕过域驱动设计,我创建了一个功能库来处理这类问题)。或者这可能是问题所在?
如果有人能再解释一下,我将不胜感激。
rxjs - 如果可用,如何创建每 5 秒从状态记录一次的 NGRX 效果?
我想使用 NGRX 创建一个消息队列,添加到队列中的每条消息都应显示 5 秒钟,然后从状态中删除,
- 在队列中的最后一条消息超时后,应将 null 值分配给 currentMessageId
- 消息应立即从队列中取出,如果
currentMessageId == null
这是我的状态:
我已经尝试过这段代码,如果商店里总是有一条消息,它会很好地工作:
但考虑这种情况:
- 效果计时器从第 0 秒开始,而商店中没有消息
- 一条消息在第 1 秒添加到存储,然后消息必须等待 4 秒才能打勾,然后显示在视图中
- 我希望它尽快显示并在 5 秒后删除
这里还有减速器功能:
angular - Ngrx 选择器组成循环依赖
我有两个实体:EntityA 和 EntityB。EntityA 需要来自 EntityB 的选择器才能组成一个新的选择器。然后,在 EntityB 上,我们需要来自 EntityA 的选择器来组成一个新的选择器。这会产生循环依赖错误。
解决问题的最佳方法是什么?是的,我知道我可以将依赖选择器移动到同一个 Entity<>.selectors 文件,但我不喜欢它。我考虑过创建一个仅包含实体之间公共选择器的文件。