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

angular - 带有aot的Ngrx过滤减速器

我正在尝试将ReduxJs 站点中的这个减速器与 NgRx 和 Angular Cli 一起使用:

但是我在 prod build 中遇到了这个错误:

app/app.module.ts(504,29) 中的错误:“AppModule”模板编译期间出错“reducers”中的装饰器不支持函数表达式“reducers”包含 app/reducers/index.ts(106) 处的错误,9) 考虑将函数表达式更改为导出函数。

您有什么想法如何使用在 prod 模式下编译的代码来实现此功能?

0 投票
1 回答
838 浏览

angular - Ngrx 测试 - 如何配置 TestBed 以便在测试中实例化整个状态存储

我想在 Angular 5 应用程序中为 ngrx 4 状态存储运行一些集成测试。我的愿望是一次性测试调度 ngrx 动作、效果、webapi、模拟服务器和选择器。为效果器和减速器编写单独的测试将耗费时间,我需要偷工减料。我只需要知道我的一个页面何时失败而不是确切的位置。

我在以前的项目中成功地做到了这一点,同时将 redux 与 Angular 2 一起使用。这很容易设置。但是,使用 ngrx 我遇到了一些麻烦。运行. AccountsWebapi_ AccountsEffects_ TestBed看起来我没有收到 webapi 的实例,而是得到了构造函数。同时,相同的 webapi 似乎在_AccountsService.

account.service.spec.ts

account.effects.ts

控制台日志

在此处输入图像描述

0 投票
1 回答
375 浏览

angular - 为什么通过更改组件内的数组直接更新ngrx Store?

我的问题如下,

我正在通过以下代码订阅我的商店

优先级设置是位于我的商店中的一个数组,其中包含 4 个字符串“无”、“低”、“中”、“高”。

我正在我的商店订阅中制作数组的副本,并在组件中使用它。但是,如果我更新副本(优先级),而不使用调度,商店会立即更新。

出于测试原因,arrayTest() 函数连接到 html 中的一个按钮,该按钮在单击事件时触发它。单击“4”时,会立即将其添加到存储数组中。

这是项目商店:

这是html模板

当我对对象、字符串或数字执行完全相同的操作时,不会发生这种情况

不中断的 this 方法的示例如下

零件:

html:

当 stringtest() 被触发时,存储不会更新,除非设置了调度,否则不会更新。

数组的这个问题发生在我的应用程序的多个地方,我选择这个是为了简单。在每种情况下,导致问题的都是数组,为什么会出现这种情况以及如何解决此问题?

提前致谢!

0 投票
1 回答
1278 浏览

angular - 如何使用 forFeature 不用于延迟加载的模块?

如何forFeature在 ngrx 中使用不用于延迟加载的模块?

在我的应用程序中,每个模块都应该有自己的 reducer

我该如何实施?

0 投票
1 回答
630 浏览

angular - 如何在功能模块中获取状态?(ngrx)

我用 angular 和 ngrx 开发应用程序。

如何在功能模块中获取状态?

我使用本教程,但我不明白什么是fromStore

0 投票
2 回答
1379 浏览

angular - StoreModule.forFeature 不存在

我试图采用现有的 ngrx 存储状态并将其重构为子功能模块。问题是当我在我的功能模块导入中使用 StoreModule.forFeature 时......我在编译过程中出现错误:

我实际上已经在 node_modules/@ngrx/store 中搜索了“forFeature”,但没有产生任何结果。然后我重新安装了@ngrx/store 和@ngrx/core,仍然没有得到“forFeature”的搜索结果。我检查了文档,“forFeature”仍然在文档列表中列出,而不是被弃用。

导入语句如下:

使用 o NGRX 的版本,如包 json 所示,如下所示:

还用谷歌搜索了这个问题,没有结果。只有将“forRoot”改为“provideStore”的结果,我已经使用了。

0 投票
1 回答
64 浏览

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

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

行动 1:LOAD_CANDIDATES

行动 2:LOAD_MATCHED_CANDIDATES

行动 3:LOAD_ASSIGNED_CANDIDATES

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

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

0 投票
1 回答
2267 浏览

angular - 从组件 ngrx 更改存储状态

我正在使用选择器从商店中进行选择

我在模板中使用异步管道从这个 observable 中读取

我只定义了动作并且我没有修改reducer但是当我保存表单时模板是一个表单我调度了一个更新动作,它只在我的动作中定义为只读但我注意到当我保存表单并调度时商店更改的操作,我没有在减速器中指定任何逻辑来更新更新操作的状态,但我不明白为什么。

在此处输入图像描述

0 投票
1 回答
154 浏览

angular - 尝试从商店填充 ng-select 组件和 @ngrx/store 但给出未定义的响应

这是输出,代码在此链接 github 片段中

堆栈跟踪

0 投票
1 回答
1091 浏览

angular - 在每个延迟加载的 Angular 模块中都有一个带有特征状态的 ngrx 根状态

我有多个延迟加载的角度模块和一个根模块。我可以在每个角度模块中拥有独立的 ngrx 根存储,每个存储都有自己的特征状态吗?