问题标签 [ngrx-effects]

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

ngrx - 是否可以同时调度一系列动作并从ngrx效果导航?

我的应用程序的其中一个 ngrx 效果有问题。我基本上是在尝试使用concatMap() 使用路由器商店的go().

这是效果:

如果我删除.mapTo(go(['/dashboard'])),那么concatMap数组中的所有三个动作都会成功地分派到它们相应的效果。

因此,我想知道为什么 mymapTo(go(...导致数组中的最后两个动作(即SigninAction& LoadMessagesAction)没有被分派到它们相应的效果..

有人可以帮忙吗?

编辑:更改mapTodo如下:

导致以下错误:

0 投票
2 回答
260 浏览

redux - Is it correct use lodash inside a pure function to map an input value?

Is it okay to use lodash inside a pure function to _.map an input value or can I only use the native Array.map which is slower?

For example:

#xA;
0 投票
1 回答
103 浏览

javascript - NGRX 处理获取/创建/删除错误

我有一个减速器,它当前存储状态为product. 我有当前的状态结构:

我的问题是当用户创建/删除产品时如何支持处理错误?我不想使用相同的loading/error属性来获取 / 创建 / 删除 - 它们可能需要同时发生。我最好创建单独的减速器,例如createProductReducer// ,或者可能将错误/加载到他们自己的deleteProductReducer/ 'loadingReducer`中?getProductReducererrorReducer

0 投票
1 回答
771 浏览

angular - NGRX / 角度 / Firebase

我正在尝试让一个应用程序与 ngrx 存储/效果以及角度和火力一起工作。

我无法理解为什么从服务中提取数据时它不起作用但直接从 Firebase 中提取数据时它确实起作用。我在效果类中只更改了一行。

我知道对 Firebase 的服务调用确实有效,因为我直接在组件中调用它并在页面上显示数据。

但是,当我尝试在 NGRX Effect 中使用相同的服务时,它在调用服务时不起作用,我必须使用 AngularFire2 调用 Firebase。

下面的代码:

不工作

在职的

服务

0 投票
2 回答
6490 浏览

angular - 在 Angular 的区域之外运行 ngrx/effect 以防止 Protractor 超时

我刚刚开始为我的应用程序编写 e2e 测试,并且遇到了 Protractor 和 ngrx/effects 的超时问题。

我有以下效果每几分钟调度一个动作:

尝试运行量角器测试会导致测试超时并出现以下错误,因为 Angular 不稳定。

失败:等待异步 Angular 任务在 11 秒后完成超时。这可能是因为当前页面不是 Angular 应用程序。有关更多详细信息,请参阅常见问题解答: https ://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular 在等待带有定位器的元素时 - 定位器:By(css 选择器,.工具栏标题)

根据这个问题(https://github.com/angular/protractor/issues/3349),我需要使用 NgZone 在 Angular 之外运行一个区间 Observable。我尝试了不同的组合,this.ngZone.runOutsideAngular()但没有任何效果,并且测试不断超时。

例如,这不起作用:

我不知道如何在 Angular 之外运行效果。有没有人成功地 e2e 测试了他们的 ngrx 应用程序?

0 投票
1 回答
50 浏览

angular - 关于正确使用ngrx/effects的“副作用”概念的设计审讯

我写这篇文章是为了知道我是否做对了。

在网上找到的例子中,模式通常是这样的(这里的例子是在状态和远程数据库上添加/删除操作):

效果.ts:

减速器.ts

它可以工作,但用户感受到的执行速度取决于网络的速度。因此,我想出了一个模式,押注 API 不会返回错误的概率很高:

减速器.ts

效果.ts:

在这种模式下,保存到数据库的动作确实是一个“副作用”。在 API 返回错误的不太可能但可能的情况下,将采取第二个操作来撤消第一个操作。

但是我还没有在网上给出的例子中找到这个设计:因为我是一个业余开发者,我想知道我是否错过了一些最终使它出错/危险/低效的东西。

0 投票
1 回答
80 浏览

ngrx - 在这个@ngrx 示例中,谁订阅了 loadCollection$ 效果?

我不明白谁订阅了这个效果,以及这个@ngrx示例loadCollection$中这个 observable 是如何开始的。有人可以解释吗?

0 投票
2 回答
3294 浏览

angular - Angular 2 上的 Ngrx 存储、效果、Http Ajax 轮询设置

我正在创建一个 Ngrx Angular 2 应用程序,并试图让我的 http 调用在一段时间后继续轮询。我已经看到了该interval()函数的使用,但是在 Ngrx 的情况下,当在内部完成服务调用时@Effect(),它会出错。请指教:

我想每十秒运行一次 switchMap 函数。这不起作用。

类型错误是:

在此处输入图像描述

0 投票
1 回答
841 浏览

ngrx - 这个@ngrx 示例中的mergeMap 有什么好处?

以下示例取自@ngrx 示例

我这样理解这个可观察的。第一个map函数得到payload要添加的书,再次由mergeMap它保存到数据库的位置处理。

原始代码:

下面的代码可以做和上面一样的事情吗?为什么有一个mergeMap必填项?

修改代码:

0 投票
0 回答
475 浏览

angular - Angular ngrx/store 如何添加将跳过操作的中间件

我试图弄清楚如何创建一个中间件,该中间件将检查动作中的属性,并据此决定是否放弃动作。

在简单的 redux 中,我会这样做:

如何使用 ngrx/store 做到这一点?