问题标签 [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.
redux - 处理ngrx/redux reducer 函数中的错误/失败
我的问题与 redux 相关,更具体地说与如何处理 reducer 函数中的错误/故障有关。我指的是 ngrx 示例应用程序 ( https://github.com/ngrx/example-app ) 及其处理错误/失败的方式。
这是我所指的减速器功能:
有人可以解释从 reducer 函数中处理这两个动作的必要性吗:
REMOVE_BOOK_FAIL
ADD_BOOK_FAIL
例如,为什么要从状态中删除这本书(在ADD_BOOK_FAIL
动作的情况下)?
如果添加图书操作失败,则该图书不在商店中。是吗?
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 。
rxjs - 链接 RxJS 映射运算符和 ngrx 效果问题
我的应用程序使用 ngrx 和 ngrx 效果。这是我的应用效果之一:
我想知道为什么LoadUserAccountAction
除非我注释掉,否则不会进入我的减速器功能//.map(() => new SigninAction())
有人可以帮忙吗?我做错了什么?
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() 实现:
这是减速器部分:
angular - 在 ngrx 应用程序中在哪里启动副作用操作?
在这个ngrx示例中,START动作是在容器智能组件的search
方法中发起的。
如果我想列出一个类别中的所有书籍,而不需要用户输入任何字符串或选择任何类别(可以使用“技术”的默认类别),我应该在哪里调度 SEARCH 操作?我正在寻找没有用户采取任何行动的初始效果。
javascript - Ngrx 将选择器结果传递给哑组件
我有一个智能组件person
和一个愚蠢的子组件person-form
。person-form
需要商店中所有人员以及当前活跃人员的列表。person-form
给出了这样的人员列表:
现在,我的问题是我应该使用选择器过滤掉子组件中的活动人员(这与愚蠢的概念相悖)还是从选择器中为活动人员传递第二个参数,如下所示:
任何帮助,将不胜感激!
angular - 使用来自 CanActivate 守卫的 store.dispatch
在我的示例 Angular 2 应用程序中,我使用 ngrx/store 来实现 redux 设计模式。
我已经在我的应用程序中实现了 CanActivate 保护,下面是相关代码
以下是相关操作
下面是相关的reducer代码
以下是相关的效果代码
我的问题是, canActivate 守卫应该返回 boolean 的 Observable ,但是返回 true 还是 false ,只有在 canActivateSuccess 函数/动作中才能知道,在这种情况下,我应该如何从 canActivate 守卫返回一个值。
angular - NGRX 效果 - 在哪里/如何组织效果定义。
我在 angular2 应用程序中使用@ngrx/effects,并努力组织不同的效果定义。
我要实体,Identity
并且Subscription
,每个都有自己的 Actions 服务IdentityActions
,SubscriptionActions
以及它们的效果服务IdentityEffects
,SubscriptionEffects
。
定义了以下操作。
授权身份后,我立即想获取其订阅列表。如何@ngrx/effects
提倡对这些影响进行组织,以便以后(例如一年后)可追溯/易于找到?
在 IdentityEffects 中:
编写它时这似乎很自然,因为获取订阅列表是身份获得授权的效果......但我担心,因为如果开发人员试图追踪从哪里获取订阅列表,它不是在 IdentityService 中进行挖掘并不直观。
另一种方法是在不发射的 CustomerEffects 中注册第二个效果。
从长远来看,这似乎更容易找到......但是在编写时感觉不太自然(我正在订阅服务中编写身份副作用......)
什么是久经考验的方法(如果甚至存在足够的时间)?