问题标签 [ngrx-store-4.0]

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 回答
2102 浏览

angular - Ngrx @Effects - 立即停止

我有以下ngrx效果。在“地图”里面我有一个条件。如何在不继续 mergeMap 的情况下立即停止效果。

0 投票
1 回答
191 浏览

angular - 以编程方式获取@ngrx/store-devtools 的状态

我正在尝试使用 NgRx 获取 devtools 的状态以将其发送到服务器并能够将其导入其他地方而无需使用 Chrome 或 Firefox 插件,也就是说,我需要像插件一样导出 JSON 但以编程方式,有谁知道我怎么能做到这一点?非常感谢!

我以编程方式需要的 devtools 部分。

0 投票
1 回答
661 浏览

angular - 更改为 NGRX 存储后更新文本框 - 两种方式绑定

我正在使用 Angular 6 和 NGRX。我在 reducer 中更新了我的 NGRX 存储中的一个字段的值,并且效果很好。如何创建双向绑定,以便 UI 上的表单中的文本框输入字段也将根据商店中的该属性进行更新。我想在我的 NGRX 商店和表单输入字段之间进行两种方式的绑定?

0 投票
1 回答
198 浏览

angular - 如何在 ngrx/router-store 上添加另一个状态?

我有一个如下定义的根级路由器存储。

我正在尝试添加一个额外的状态init,称为我想与路由器状态一起跟踪的状态。如何创建一个也可以访问初始化状态的功能选择器?换句话说,如何创建一个没有类型绑定到 RouterReducerState 的特征选择器?

0 投票
1 回答
448 浏览

angular - 按照惰性模块结构使用 NgRx 存储创建嵌套切片

我是 NgRx 的新手。在我的项目中,我们有 3 个级别的惰性模块。我希望商店的状态根据模块层次结构嵌套,但是当我写作时:storeModule.forFeature('child',reducer) 我得到的是一个平坦的状态切片而不是分层的状态。

例如,如果我有父模块和子模块。我将在父模块storeModule.forFeature('father',reducer) 和子模块中定义storeModure.forFeature('child',reducer)

状态的结果不会是

而是:

有没有办法像惰性模块一样使状态分层?

0 投票
0 回答
368 浏览

angular - ngrx 不保持状态

使用自己的小型商店实现(有效)我​​正在尝试将ngrx/store 引入到angular 6 应用程序中。版本是:

该应用程序是一个 Angular 前端,它通过 Spring 应用程序通过 http 获取/写入数据到数据库。当 BankaccountListComponent 首次加载时,它通过 BankaccountService 从数据库中提取银行账户列表,然后是 spring 应用程序。BankaccountService 将提取的数据写入存储。通过一个可观察的 BankaccountListComponent 连接到存储。

但是,它没有获取数据。在客户端中只显示一个空框。看起来bankaccounts$商店永远不会更新可观察对象。

通过查看下面的代码,您可能会发现错误很明显。如果您希望我创建一个可运行的应用程序,例如在 jsfiddle 中,请告诉我,我会做的。

控制台输出是

bankaccount-list.component.html

bankaccount-list.component.ts

银行账户-item.component.ts

bankaccount-item.component.html

银行账户.service.ts

银行账户.actions.ts

bankaccount.reducer.ts

app.state.ts

app.module.ts

0 投票
1 回答
431 浏览

angular - “商店”类型上不存在属性“replaceReducer”' 升级后@ngrx/store

在我的 Angular 应用程序中,我有一个替换 Store 使用的当前 reducer 的函数。但是,从@ngrx/store v2.2.2 升级到 v6.1.0 后,“replaceReducer”功能似乎已从 Store 界面中移除。

我已经阅读了 NGRX 迁移指南(https://github.com/ngrx/platform/blob/master/MIGRATION.md),希望找到一个可能的解决方案或替代方法来解决这个问题,但我不能找到对删除的“replaceReducer”函数接口的任何引用。

这是我的代码:

0 投票
2 回答
5478 浏览

angular - 在 NGRX 效果中访问状态

如何在效果中访问我的一部分状态?我当前的效果实现(如下所示)是在SEARCH_REUQUEST调度动作时触发的。但是,我想在调用我的搜索服务以启动 HTTP 请求之前访问一个状态以获取一些搜索参数。

显然,我可以在这里利用一个 RxJS 运算符,但我似乎无法理解如何修改我现有的效果实现以合并它。

我觉得我接近一个解决方案,但我似乎无法在switchMap舞台上将它放在一起。

0 投票
2 回答
252 浏览

javascript - 角度根据条件将不同的可观察对象分配给具有异步的模板(任何内存泄漏?)

我需要根据一些标志来渲染来自不同 ngrx 存储的数据。两家商店都提供相同类型的数据。

方法一

方法二

在 Approach1 中,我正在复制模板,这对于小模板来说很好 - 但如果它很大,那么我正在考虑 Approach 2。

在 Approach2 中,streamService 可以随时更改标志,在这种情况下,使用异步管道的模板中的先前订阅会发生什么。它会导致任何内存泄漏吗?

有没有其他我可以使用的替代品,请建议。

0 投票
1 回答
1115 浏览

angular - 使用 NgRx 将对象数据集成到组件中,具有本地副本

在我的 Angular 应用程序中,我有一个包含一组过滤器的页面,这些过滤器可以切换然后立即提交。

我使用一个基本服务构建了它,它有一个过滤器对象(过滤器名称指向过滤器值)。localFilters该服务的数据结构在组件(,如果用户没有提交就退出,它不会更新全局服务(localFilters退出时清除)。

然而,我一直在让使用这些数据的组件与使用它的服务和其他组件保持同步时遇到问题,所以我决定尝试 NgRx,因为我理解这种基于 observable 的模式对于 Angular 来说更为典型,并且具有之前在一些 React 项目中使用过 Redux。

但是,由于两个原因,我在设置它时遇到了重大问题:

  1. 我之前在服务中使用的模式涉及localFilters在组件挂载时根据全局过滤器对象的状态设置对象。这些localFilters将用于确定页面上过滤器的起始状态,并在提交时全局设置。然而,使用 NgRx 使用的 observable 模式,没有filters要复制的对象——只有一个 observable,因此我不知道如何初始化该localFilters对象。因此,我不知道如何从这个全局对象中设置各种过滤器组件的默认状态。

  2. 更基本的是,我不知道如何在模板中显示过滤器值(如果我无法将其数据复制到本地对象,则尤其必要)。NgRx 上的基本入门文档展示了如何使用管道将数值合并到模板中async,但是因为我的数据是对象形式,并且我想传递该对象的值,所以这种技术不起作用。我已经根据上面的链接尝试了以下尝试—— filters$ | async(显示[Object object])、filters$.someKey | async(不显示任何内容)和(filters$ | async).someKey(同样不显示任何内容)。

基本上,最大的问题是我如何访问存储在 NgRx 状态中的对象的快照,以初始化此过滤器组件的本地状态,并在模板中呈现来自对象的值(或传递这些值)。

还是我应该遵循更好的模式?(好的例子很难找到,将不胜感激)。

下面是我的一堆相关代码。

动作文件:

减速器文件:

缩写 AppModule:

以及相关 component.ts 文件的缩写版本:

顺便说一句,我在上面的组件构造函数中尝试了以下一些内容:

不确定是否可以循环遍历过滤器的键/值。