问题标签 [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 投票
0 回答
371 浏览

angular - 在商店中拉取 Ngrx 实体的问题

我一直在开发一个应用程序来学习 Angular Ngrx 商店和实体。该应用程序使用来自 ngrx/platform 的示例应用程序作为起点。代码和应用程​​序在 StackBlitz 上

我正在尝试使用 createSelector 过滤掉具有与所选任务的 id 匹配的 task_id 的 pomos。甚至无法做到这一点,我尝试使用基于 EntityAdapter 的 pomo reducer 将所有 pomos 加载到 state 中。那也行不通。我的所有操作都成功了,包括向商店添加了一个 pomo,但我无法加载它们。在这一点上,我只是想让它们全部加载,但最终目标是一个选择器,它根据它的 task_id 加载 pomos。我怀疑这个问题很可能是国家实际上是如何组成的,但我不知道该怎么做。就像我说的,将 Pomo 添加到商店的操作可以正常工作,但是在加载 pomo 时。它返回空。

这是我的减速器/index.ts

0 投票
1 回答
3961 浏览

angular - 来自ngrx/entity的SelectAll没有选择任何东西

介绍

我在让我的选择器工作时遇到了一些麻烦。FakeApiService尽管我可以看到已拨打电话,但我的组件并未随书籍更新。所以行动和效果是有效的。

我相信这个问题与我使用@ngrx/Entity. 具体来说这个

我已经看过他们提供选择器功能的教程,getSelectors()但这不是必需的。

我希望有人能发现我哪里出错了,如果有人对结构/设置有一些建议,我会全神贯注:)

这是我的设置。

版本

  • 角度:6.0.0
  • rxjs 6.1.0
  • 打字稿2.7.2
  • 网络包 4.6.0
  • @ngrx/效果 5.2.0
  • @ngrx/实体 5.2.0
  • @ngrx/路由器商店 5.2.0
  • @ngrx/原理图 5.2.0
  • @ngrx/商店 5.2.0
  • @ngrx/store-devtools 5.2.0

ngRx

功能/商店/动作/book.actions.ts

功能/商店/效果/book.effects.ts

功能/商店/reducers/book.reducer.ts

功能/存储/reducers/index.ts

功能/商店/选择器/book.selectors.ts

功能/功能.module.ts

功能/组件/book-view.component.ts

0 投票
1 回答
64 浏览

angular - 将 3 个相同类型的对象保存在一个特征存储中,并且完全分离。

我有三个服务,它们根据不同的操作返回相同类型的对象。我怎样才能以干净的分离来保存特征存储中的所有对象。

行动 1:LOAD_CANDIDATES

行动 2:LOAD_MATCHED_CANDIDATES

行动 3:LOAD_ASSIGNED_CANDIDATES

我确实对他们每个人都有成功和失败的影响。

我怎样才能在特征存储中同时拥有所有匹配和分配的候选对象,并通过明确的分离来指定相应的对象类型(即这些是匹配的,这些是分配的)

0 投票
1 回答
311 浏览

angular - (string|number)[] 和 string[]|number[] 之间的 typescript ngrx 类型不匹配

我正在尝试使用以下其他库将我的 Angular 应用程序升级到 5.2.10:ngrx 5.2.0 typescript: 2.6.2 tslint 5.10.0

并在角度编译期间遇到以下错误:

`

`

`

`

我正在使用@ngrx/entity 库从ngrx 的“module.d.ts”文件中定义的以下EntityState 接口派生我们的数据状态接口。

`

`

任何解决这些错误的指针?

0 投票
4 回答
4007 浏览

javascript - 是否可以更改 ngrx/entities 中的 id?

是否有必要在 ngrx/entities 中有不会更改的 id?我想使用字符串属性path作为 id。它是独一无二的。但它可以改变。在这种情况下我应该使用 uuid 作为 id 吗?

0 投票
1 回答
2285 浏览

angular - 使用来自多个实体的数据创建 @ngrx 选择器(Angular)

我有基于以下模型的@ngrx 实体:

我将用户的配置文件存储在设置状态中,并将选定的过滤器(来自 UI)存储在产品状态中:

我的减速器的摘录是这样的:

然后,我创建了一个选择器,用于合并来自上述选择器的数据:

该解决方案运行良好,但每当将产品添加到购物篮时,我的整个产品列表都会重新初始化(可能是因为我正在使用地图重新分配产品)。随着产品列表的增长,这可能会产生性能问题。我想将更改检测限制为仅发生更改的产品。

我在 createSelector 中的 map / filter 实现是否正确?我怎样才能提高性能?

0 投票
0 回答
57 浏览

javascript - 如何在 Angular 2 中使用 httpclient get 方法并在列表中显示项目?

我正在尝试在 Angular 2 中使用httpclient get方法并在列表中显示项目,但我正在使用ngrxwith ngrxeffect(用于 asyn 任务)。我做了一个减速器,动作。我也做effect文件。现在我想调用服务并从服务中获取数据并将数据存储在存储中。

我试过这样

https://stackblitz.com/edit/angular-s5xdfv?file=src%2Fapp%2Fstore%2Flist.effect.ts

减速器

从'./list.action'导入*作为动作;

影响

任何更新

0 投票
2 回答
1392 浏览

angular - 为什么 Ngrx 实体 ID 通常用作字符串?

我一直在寻找为 ngrx 实体设置样板的示例,并且很好奇为什么大多数人使用字符串类型 id 设置他们的模型。这很奇怪,因为对于 EntityState,选择的 id 然后存储为一个数字。在大多数情况下,我见过的例子都使用了这个,但我找不到一个合理的。

这样做有什么好处?我在想可能是为了简单的 JSON 编码,但这使得像递增索引和查找这样的正常操作很烦人。宁愿只在需要导出数据时进行编码。

这是官方仓库中示例的链接: https ://github.com/ngrx/platform/blob/master/docs/entity/adapter.md

0 投票
0 回答
255 浏览

angular - ngrx state-什么时候展平状态?

强烈建议扁平化 ngrx 商店的状态树,我在整个应用程序中都在努力这样做。我理解并同意这样做背后的原因——扁平状态树更易于管理、深度复制等。

但是,我遇到了一个场景,让我想知道设置状态树的最可维护的方式。我有一个功能,Crews其中包含一个 Crew 中的许多用户。工作人员的一个实例可以有替代用户(例如,如果该工作人员中的某个人不可用)。Asub简单地定义了原始用户 ID 和替换用户 ID。据我所知,有两种方法可以做到这一点。最直接的方法是使用非扁平结构——可能看起来像这样:

另一种选择是创建一个Subs特征,其中的 subsCrew将指向 subs 中的一个 id:

但这对我来说似乎有点矫枉过正——创建一个全新的功能,只是为了表示两个字符串 ID 值。任何关于哪个方向最可维护/最直接的想法,或者更好的方式来表示这一点?

0 投票
1 回答
2198 浏览

angular - 在 NGRX 上的 ActionsSubject 订阅上使用操作的有效负载

我得到了旧的和坏的Property 'payload' does not exist on type 'Action做这个动作订阅:

由于是创建操作,我需要有效负载来签出userId最近创建的用户并导航到/users/userId

顺便说一句:我正在关注这个非常好的教程