问题标签 [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.

0 投票
3 回答
5109 浏览

angular - @ngrx/entity `Cannot read property 'ids' of undefined` 与 @ngrx/store 一起使用时?在定义适配器时已经考虑了自定义 ID

我已经查看了关于此的另外 2 篇文章,其中包含较大状态的一篇不适用,而另一篇注册了多个 forFeature - 我已经对此进行了一些测试,即使我在之前或之后导入它forRoot(reducers) 在我的 app.module 中,它没有区别。

我确定我在配置中遗漏了一些明显的东西。

我的配置:

我的实际减速器:

我在我的 Order.Module 中注册为:

我的主要减速器地图:

然后是app.module中的主要导入:

尝试读取实体:

构造函数:

实际功能:

该导入的来源:

0 投票
2 回答
413 浏览

angular - Angular NGRX 实体计数相同的对象

我有一个电话,我在其中获得了要提交的未完成报告的人员的 ID 列表,并且我想跟踪该人员未完成的报告的数量。我正在使用 EntityAdapter 存储该数据。现在我不知道如何在适配器中保持计数。

到目前为止,我已经检查了 ngrx 文档,尝试了很多对代码的操作,并在 gitter 聊天室问了我的问题,但到目前为止还没有结果。

我的服务返回一个字符串数组,其中包含人员的 id。示例数据可能是:

人员 ID 数组

在这里,我有两次相同的 ID,这意味着该人有 2 份报告。我想存储该 ID 并保持计数“2”。目前我正在将此代码用于适配器:

这在我的商店中为我提供了以下结果:

存储结果

但我实际上正在寻找以下结果,每个 Id 都存储在其中,并且我知道该 Id 被具体找到了多少次:

在此处输入图像描述

0 投票
1 回答
40 浏览

angular - 忽略后端对象带来的不必要的对象属性

有一个关于忽略后端模型带来的不必要对象属性的问题。

你能提供你的意见吗?

让我们说一个 API 在对象下面返回

在 Angular UI 中,我不需要以下两个字段

那么我可以在 Angular UI 中有一个对象吗?

是否可以在 Angular 中做到这一点。我知道 GraphQL 有这方面的能力。想知道是否有可能实现这一目标。

这可能使用 Ngrx 或其他替代方法吗?

0 投票
1 回答
583 浏览

angular - NgRx EntityState - 我们可以在状态对象属性上使用 EntityState

继续我的新旅程NgRx,我刚刚发现EntityState,如果我理解并尝试正确使用它,它涵盖了我需要为我做的所有“集合操作”操作!

我遵循了这个优秀的教程,有一个小区别,我想(如果可能的话)使用EntityState我的状态对象的属性,而不是将其扩展为整个状态对象,如链接示例中)。我这样做是为了匹配我现有的数据,并可能允许另一个列表属性也是一个EntityState(如果它可以以这种方式使用,再一次)。

我已经替换了我的一个功能状态对象中的对象数组,但是在选择时遇到了问题。

我在这里有一个简单的版本。

在此示例之后,状态为feature1,为简单起见,我只是将其放入文件夹而不是单独的模块中。

我的应用程序有现有的类,我在其中序列化来自服务器的数据。

我已将这些放入 freature1.reducers.ts 文件中。

所以我为我想要存储的状态声明了接口,Array<BookModel>我希望我可以用这个来替换EntityState

所以,功能状态,我有以下(在同一个文件中)......

我有一个动作getLibrarySuccess,当新数据从服务器进来时触发,在 reducer 文件中,我使用 helper 方法updateBookList,它将使用所有各种方法EntityAdapter来进行更新(不包括在内,但这就是它们所在的位置)。

到目前为止,一切似乎都很好..

现在终于,(问题出在哪里)在feature1.component.ts,我想订阅选择器getAllBooks

在这里,我可以看到 IDE 报告了一个问题:

在此处输入图像描述

错误是......

所以,我的选择器似乎有问题......

但我不知道如何解决这个问题,我做错了什么。是对来自的fromFeature1.getBooks引用。我假设我需要以某种方式使用其中的选择器来获取我的更新和状态,但我不确定。booksAdapter.getSelectors().selectAll;EntityAdapterEntityAdapter

0 投票
1 回答
140 浏览

angular - 如何使用 ngrx 实体将本地存储与 Firestore 同步?

我正在使用 NgRx 和 Firestore,我试图想办法让本地商店与 Firestore 集合保持同步。我有一个可观察的设置,在更新 firestore 集合时会触发,但在我的减速器中,我不确定如何使用 NgRx 实体适配器将存储中的内容替换为新数据。我已经尝试过 addMany 和 upsertMany 但如果在用户刷新之前删除项目,它们不会删除它。

我的 loadUsers Success Action 的 Reducer 看起来像这样

0 投票
2 回答
3138 浏览

angular - Angular Ngrx 8 选择器错误:无法读取未定义的属性“地图”

我正在努力使用 Ngrx 8 选择器。我已设法查询数据并将其保存到存储中,但每当我尝试使用选择器时,我都会收到此错误“无法读取未定义的属性‘映射’”。

效果文件(ects-users.effects.ts)

动作文件(external-user.actions.ts)

外部用户减速器 (external-user.reducer.ts)

选择器文件 (external-users.selectors.ts)

通用减速器文件 (index.ts)

我在控制台上看到的错误

0 投票
1 回答
171 浏览

angular - Ngrx:如何将 simpe store 模式与实体状态结合起来?

最近很抱歉,如果它与某人的问题重复。但是我找不到我的问题的解决方案。

我遇到了一个问题,我想让我的商店状态有点复杂,ngrx/entity提供但我不知道如何正确地做到这一点。

以下是我现在拥有的减速器模型:

所以我期望什么商店:

我要买什么商店:

如何在其中放置 id 和实体RareBags

0 投票
2 回答
685 浏览

angular - 是否可以使用 NgRx createSelector 发出错误?

可能有不同的方法来解决它(比如创建另一个选择器,特别是针对错误)

我想捕捉第二个订阅参数(错误之一),但我不知道是否可以在 NgRx 选择器中发出它

0 投票
2 回答
654 浏览

angular - 在ngrx EntityState中处理分层数据

我有一个数据库,其中包含一个具有 orgref、parentorgref、name 属性的组织表。

我将这些组织存储在 rxjs 实体状态中。

在我的应用程序的大多数地方,我想分层使用这些(数据树等),所以希望它们排列为:

当然,如果我在children通过以下方式加载组织时将子组织添加到集合中

然后对实体的引用被破坏 - 也就是说,如果我使用 orgref=3 编辑实体,它不会更新层次结构中的组织,因为它是对象的副本,而不是对它的引用。

是否有一个公认的解决方案来处理 ngrx EntityState 中的分层实体?

谢谢

0 投票
3 回答
1608 浏览

angular - 如何在 NgRx 中选择多个状态

所以想选择我的 userPagination 状态并将其分派到 loadingUsers 操作中。

如何将多个选择添加到此解析器中,然后分派该操作?