问题标签 [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 回答
273 浏览

redux - 处理ngrx/redux reducer 函数中的错误/失败

我的问题与 redux 相关,更具体地说与如何处理 reducer 函数中的错误/故障有关。我指的是 ngrx 示例应用程序 ( https://github.com/ngrx/example-app ) 及其处理错误/失败的方式。

这是我所指的减速器功能:

有人可以解释从 reducer 函数中处理这两个动作的必要性吗:

  • REMOVE_BOOK_FAIL
  • ADD_BOOK_FAIL

例如,为什么要从状态中删除这本书(在ADD_BOOK_FAIL动作的情况下)?

如果添加图书操作失败,则该图书不在商店中。是吗?

0 投票
4 回答
29999 浏览

angular - 使用ngrx时调度完成后执行代码

在我的示例 Angular 2 应用程序中,我使用 ngrx/store 和 ngrx/effects 进行状态管理。

以下是组件中添加新项目的功能之一。

在上面的代码中“this.store.dispatch(addAuthorAction(this.fg.value));” 负责对服务器进行 AJAX 调用并将新作者添加到数据库,这工作正常。

因为“this.store.dispatch(addAuthorAction(this.fg.value));” 是一个异步操作,console.log("2") 语句甚至在 AJAX 调用完成之前就被执行。

我的问题是,需要修改什么以便在 store.dispatch 完成后执行 console.log 。

0 投票
1 回答
1559 浏览

rxjs - 链接 RxJS 映射运算符和 ngrx 效果问题

我的应用程序使用 ngrx 和 ngrx 效果。这是我的应用效果之一:

我想知道为什么LoadUserAccountAction除非我注释掉,否则不会进入我的减速器功能//.map(() => new SigninAction())

有人可以帮忙吗?我做错了什么?

0 投票
1 回答
525 浏览

ngrx - ngrx/effects 不调度映射的动作

我使用 ngrx/effects 库定义了一个非常直接的效果。

@Effect 被触发,authorize$() 运行,并且 OnIdentityAuthorized() 方法返回一个 Action ({type: payload: }) 触发......

我期望发生的是 OnIdentityAuthorized() 返回的操作应该被输入到适当的减速器中——这没有发生。

我在 OnIdentityAuthorized 和相应的减速器中有一个调试器调用。OnIdentityAuthorized 返回的 Action 没有被分派。什么可能导致这种情况?我是不是误会了什么?

我觉得我所拥有的与此处的示例 1 基本相同:https ://github.com/ngrx/effects/blob/master/docs/intro.md

编辑 添加了额外的代码部分...效果触发了 OnIdentityAuthorized 调试器语句,因此可观察对象一直通过异步授权调用发出。减速机案例未触发...

这是 OnIdentityAuthorized() 实现:

这是减速器部分:

0 投票
1 回答
248 浏览

angular - 在 ngrx 应用程序中在哪里启动副作用操作?

在这个ngrx示例中,START动作是在容器智能组件的search方法中发起的。

如果我想列出一个类别中的所有书籍,而不需要用户输入任何字符串或选择任何类别(可以使用“技术”的默认类别),我应该在哪里调度 SEARCH 操作?我正在寻找没有用户采取任何行动的初始效果。

0 投票
1 回答
3580 浏览

angular - 为什么在这个 ngrx 示例中需要 takeUntil?

在这个rxjs 示例中,atakeUntil用于该switchMap部分。我删除了它并且可观察的工作正常。

为什么在这个例子takeUntil中 the和 thenextSearch$是必要的?

0 投票
1 回答
114 浏览

javascript - Ngrx 将选择器结果传递给哑组件

我有一个智能组件person和一个愚蠢的子组件person-formperson-form需要商店中所有人员以及当前活跃人员的列表。person-form给出了这样的人员列表:

现在,我的问题是我应该使用选择器过滤掉子组件中的活动人员(这与愚蠢的概念相悖)还是从选择器中为活动人员传递第二个参数,如下所示:

任何帮助,将不胜感激!

0 投票
1 回答
1053 浏览

angular - 使用来自 CanActivate 守卫的 store.dispatch

在我的示例 Angular 2 应用程序中,我使用 ngrx/store 来实现 redux 设计模式。

我已经在我的应用程序中实现了 CanActivate 保护,下面是相关代码

以下是相关操作

下面是相关的reducer代码

以下是相关的效果代码

我的问题是, canActivate 守卫应该返回 boolean 的 Observable ,但是返回 true 还是 false ,只有在 canActivateSuccess 函数/动作中才能知道,在这种情况下,我应该如何从 canActivate 守卫返回一个值。

0 投票
1 回答
1299 浏览

angular - 使用 RxJS Observable Vs Subject 进行响应式搜索

以下是解决同一问题的两种方法,即对用户在文本框中输入的某些字符进行响应式搜索。第一个解决方案来自ngrx 示例,第二个解决方案来自egghead即时搜索课程。

  • 第一个解决方案使用Observable,而第二个使用Subject.
  • Observable解决方案takeUntil只调用一次服务器。该Subject解决方案使用distinctUntilChanged.

有人可以解释这两种方法的优缺点吗?

使用 Observable 搜索:

使用主题搜索:

0 投票
1 回答
426 浏览

angular - NGRX 效果 - 在哪里/如何组织效果定义。

我在 angular2 应用程序中使用@ngrx/effects,并努力组织不同的效果定义。

我要实体,Identity并且Subscription,每个都有自己的 Actions 服务IdentityActionsSubscriptionActions以及它们的效果服务IdentityEffectsSubscriptionEffects

定义了以下操作。

授权身份后,我立即想获取其订阅列表。如何@ngrx/effects提倡对这些影响进行组织,以便以后(例如一年后)可追溯/易于找到?

在 IdentityEffects 中:

编写它时这似乎很自然,因为获取订阅列表是身份获得授权的效果......但我担心,因为如果开发人员试图追踪从哪里获取订阅列表,它不是在 IdentityService 中进行挖掘并不直观。

另一种方法是在不发射的 CustomerEffects 中注册第二个效果。

从长远来看,这似乎更容易找到......但是在编写时感觉不太自然(我正在订阅服务中编写身份副作用......)

什么是久经考验的方法(如果甚至存在足够的时间)?