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

typescript - 替换集合中实体的最简洁方法

实体适配器支持使用“updateOne”方法调用更新集合。但是,当更新值的键不存在时,这会导致特定实体不被更新。请参阅代码示例。

但是,在内部,实体适配器使用Object.assign()which while is nice 并不总是我想要的。我希望它基本上取代有问题的实体。

此外,如果所讨论的对象具有结构 A(见下文)。然后发生了一些任意的数据库操作并将更新的 JSON 返回到前端。reducer 最终会在表单中获得该信息。

我希望它简单地替换集合中的值,而不是试图通过内部调用“Object.assign()”来进行不良更新。或者,以某种方式将对象中的键设置为 null 将是有益的。

0 投票
1 回答
872 浏览

ngrx - ngrx 实体适配器 addAll 和嵌套状态

我有一个场景,我在用户页面上有一个用户列表。每个用户都有自己的应用列表,当用户点击时,会显示相应的应用列表。我想使用 ngrx 实体适配器,但首先我需要设计我的状态。一种选择是:

另一个是这样的:

由于用户页面之外没有应用程序,所以第一个选项对我来说更有意义,但是使用这种方法我有一个问题:如何使用addAll 适配器的方法?据我了解,如果我错了,请纠正我,addAll接受一个表示项目列表的有效负载作为第一个参数,状态作为第二个参数,并以某种方式将它们合并在一起。你能举例说明如何使用适配器更新嵌套状态吗?或者,也许解决方案是选择第二种选择?谢谢。

0 投票
1 回答
166 浏览

ngrx - 用于嵌套属性的 ngrx 实体适配器

我为用户提供以下商店结构:

adapter.getSelectors()仅适用于顶级键,而我想在 items 键中应用它。怎么可能呢?

谢谢。

0 投票
0 回答
92 浏览

ngrx - ngrx 通过域和 ui 数据创建嵌套状态

我正在使用ngrx实体,理想情况下我想实现以下状态结构:

这将允许我将我的数据存储与 UI 相关的东西分开。我似乎无法找到一种方法来做到这一点。目前我正在做的是这样的:

我有一个单独的商店模块。我为 userEntities 创建了一个 reducer,为 usersView 创建了一个 reducer。然后,ActionReducerMap我创建了一个组合减速器,如下所示:

然后我导入StoreModule.forRoot(reducer)我的商店模块。它有效,但结果状态的结构不是我想要的。有什么办法可以解决吗?

谢谢。

0 投票
1 回答
44 浏览

angular - 我可以将单个 EntityAdapter 用于同一 EntityState 的几个实例吗?

我有一个相同模型的 EntityStates 分配给单个状态的几个属性。我可以使用一个适配器来操作所有这些吗?它们具有相同的初始状态,但将包含具有不同状态的值。

然后我想使用这样的单个实体实例

0 投票
1 回答
1592 浏览

angular - NGRX 如何处理在后端执行的排序

处理在后端执行的排序实体的最佳方法是什么?目前,当我使用适配器添加已排序的项目时,我的状态没有识别出某些变化,而项目仍与排序前相同,但它们在数组中的位置已更改。

已编辑

我从后端接收排序的元素,然后将它们添加到我当前的实体中,但是状态不识别位置变化,而实体的所有属性都相同,并将其视为没有任何变化。

我知道问题出在此处, ...state.entity1因为我连接了与有效负载提供的相同的数组。只是位置发生了变化。

目前,我做了一个技巧,因为第二个参数提供了初始状态

0 投票
0 回答
385 浏览

angular - 在 ngrx 存储中使用实体组合选择器

我目前正在使用 ngrx 实体开发一个 ngrx 商店项目,我想在其中编写一些选择器,如下所示:

我想在选择器中使用selectProductById选择selectCurrentProduct器,如下所示:

语法是什么?这会导致我尝试使用selectCurrentProduct选择器时出现编译错误:

类型“Observable<emoizedSelector<object, Product>>”不可分配给类型“Observable<Product>”

更新

感谢所有的链接和东西,但他们并没有真正解决我的问题。我正在寻找createSelector()使用另一个选择器创建一个选择器,该选择器也是由createSelector(). 请看我上面的伪代码。我正在尝试使用选择器来使用selectProductByIdte selectProductById

0 投票
1 回答
352 浏览

angular7 - NGRX 无法读取实体参数

我正在尝试设置一个使用 NGRX 的应用程序。

当应该加载单个实体时,我无法访问返回的实体参数。

由于无法访问实体参数,我也无法以模式形式加载实体。

首先通过 data.service 从后端调用员工列表

数据.service.ts :

返回所有注册工程师。

列出所有工程师条目后,engineer-list.componenent.ts 添加 editEngineer 函数:

然后 loadEngineer$() 效果发生:

data.service 调用 getEngineerById():

它从 php mysql 请求中返回所选工程师的 json 响应:

下一步由带有 LOAD_ENGINEER_SUCCESS 的减速器执行

这里的问题是控制台记录了减速器的响应

undefined " - ID of the selected engineer object" 控制台记录“action.payload”返回时返回:

NGRX 也返回错误:

0 投票
1 回答
1215 浏览

angular - 角度存储状态未定义

我有一个 Angular 7 应用程序,它使用 ngrx-store 和实体。存在一个问题,即我的商店状态的元素在我的效果中未定义。

这是效果的片段:

我的减速器包括以下内容:

初始状态是这样的:

reducer 是这样初始化的:

state 和 reducer 是这样注册的:

为什么storeState.accountSummaries我的效果中我的未定义?据我所知,我已经正确注册并初始化了所有内容。

0 投票
1 回答
1090 浏览

redux - 重置 - Redux 抛出一个无效的动作:未定义

我正在尝试基于注销重置我的 redux-store,但出现以下错误。寻找更好的建议来重置我的 redux-store 状态,以便在我发现将其设置为 undefined 的任何地方都会有所帮助,但在我的情况下它不起作用。

但得到这个例外

这是我的效果