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

ngrx - 使用 @ngrx/effects 创建加载指示器延迟

我正在尝试创建一个延迟加载指示器的效果,以便每次从 API 检索数据时它不会闪烁或闪烁。这很可能是不知道要搜索什么的情况,因为我敢肯定,我不可能是唯一一个想要在将这样的指示器扔到屏幕上之前给 API 300-500 毫秒响应的人。

有什么东西会破坏这个效果的完成吗?我正在将我的所有动作/状态对记录到控制台,并且正在调用 START_LOADING_DELAY_TIMER,但永远不会完成。

编辑

过早地提出了这个问题,因为我遇到的问题最终无关紧要。这是最终的实现,以防其他人发现这个问题:

  • 启动计时器以延迟加载指示灯闪烁
  • 如果 aCancelLoadingDelayTimerAction被调度(可能是从 API 完成数据检索),停止计时器并且不显示加载指示器。
  • 如果计时器在CancelLoadingDelayTimerAction调度之前完成,则显示加载指示器。
0 投票
2 回答
1507 浏览

angular - @angular @ngrx/effects HTTP 请求不断取消和重试

我有一个非常简单的效果,它发出一个 http 请求并在完成时分派一个动作。

HTTP 请求不断地被取消和一遍又一遍地重新制作。

在此处输入图像描述

最初我认为是 switchMap 导致了问题(取消了 observable),所以我尝试使用 mergeMap(结果相同)。

下面是我的效果代码。

上面的代码编译没有错误并且按预期工作,除了它不断取消和重新发出 http 请求的事实。

我不知道这是否重要,但我使用的是 HttpClient (@angular/common/http),而不是 @angular/http。

任何建议将不胜感激!

0 投票
1 回答
138 浏览

angular - 是否可以在通过运算符进行转换之前进行观察?

是否有可能?

更详细的问题

我有这样的事情:

transformedobservable 是新的observable 并且它没有连接到初始 observable source(我无法通过 访问它transformed,我认为)。是否有可能在使用运算符转换后以某种方式获得初始(在运算符应用之前)可观察?

我的情况

代码:

和 AppendLoader:

我在那里有三个可观察的:

  • this.actions$(所有动作)
  • 从 this.action$ this.action$.ofType(friendsActions.GET_FRIENDS)friendsActions.GET_FRIENDS类型的可观察对象)创建
  • 第三个可观察对象(第二个并switchMap应用于它)(GetFriendsSuccessAction/的可观察对象GetFriendsFailureAction

我只能访问装饰器中的第三个 observable,因为这个 observable 在getFriends$属性中。

我想在 AppendLoader 装饰器中做一些动作。我想订阅列表中的第二个 observable,当发出值时,我想显示负载微调器(showLoader()例如)。我想订阅第三个 observable,当成功/失败值发出时,我想隐藏加载微调器。

0 投票
4 回答
11745 浏览

angular - ngrx ofType,@ngrx/效果

如果我在我的应用程序模块中声明,我会尝试了解 typeof 效果在 ngrx 中是如何工作的:

我肯定会写效果文件:

我试着理解,现在在运行时我调度了一个动作 this.action$ 被订阅并且每次执行 ofType 来匹配类型?或 ofType 一次执行!?

如果它调用一次,当我调度操作时,效果如何知道每次女巫效果订阅/执行?

谢谢大家!

0 投票
0 回答
195 浏览

angular - 如何使用 ngrx/store ngrx/effect 处理结帐

我是 angular2 ngrx/store 和 ngrx/effects 的新手。我已经整理了一个应用程序,我将物品放入商店。我无法正确结帐。我的商店由标题信息(如运输信息)以及作为数组的项目信息组成。像这样:

我的行动:

}

我需要创建一个包含购物车运输信息的标题记录,然后在收到订单号后创建目录信息。我必须为每个功能使用两个休息服务。我能够创建订单。

通过做这个:

我写的效果只有在有效负载中有一个 catalogDetail 时才有效:

0 投票
2 回答
1516 浏览

javascript - 错误后可观察到 rx 损坏

我正在尝试使用 ngrx store + ng 效果为我的应用程序编写登录流程。我已经设法编写它并且它在快乐的场景中工作,但是当用户在表单中输入错误的值时,服务器以 401 响应,下一次登录尝试没有效果。我已经读过,在使用 observables 时必须捕获异常,以免“破坏”流,但据我所知,我已经捕获了异常并且它现在仍在工作。

下面的代码;

0 投票
1 回答
1892 浏览

angular - 使用 ngrx 最新版本的 Ngrx App 始终未定义存储对象

我有一个简单的应用程序

没有 NGRX

零件

服务

当我尝试将其转换为 ngrx 时,所有这些工作都很好,它使用存储和效果来工作。

使用 NGRX

在组件中创建了一个状态

行动

效果

减速器

应用程序模块

它转到服务调用,我做了一个日志,但是在组件中获取它时,我得到以下信息

在此处输入图像描述

很抱歉,这篇长文只是想让您了解情况。

我关注了这个视频https://www.youtube.com/watch?v=lQi5cDA0Kj8 和这个https://github.com/ngrx/platform/blob/48a2381c212d5dd3fa2b9435776c1aaa60734235/example-app/app/books/reducers/books。 ts

0 投票
1 回答
598 浏览

javascript - 角度未定义的组件输入值

我正在尝试将帖子从一个组件传递到另一个具有编辑表单的组件。外部组件获取帖子并传递给内部组件进行编辑,但由于某种原因它没有通过,所以我得到了一堆未定义的错误。

外部组件 html 如下所示:

外部组件打字稿如下所示:

内部组件 html 如下所示:

内部组件打字稿如下所示:

store.select 语句中的外部组件的 console.log 正确地将帖子打印到控制台,但 ngOnInit 函数中的内部组件的 console.log 语句说它是未定义的,因此商店正确调度 LoadPostAction 并从服务器,但在内部组件中,我不断收到 post.content 未定义的错误,并且帖子内容从未出现在表单中。

任何帮助,将不胜感激。谢谢

0 投票
0 回答
980 浏览

angular - ngrx effect() 只触发一次 - Angular 4

我的登录系统是围绕 ngrx/store 构建的。当我加载网站时,它在我第一次提交登录凭据时效果很好。但是一旦我这样做了两次(比如我输入了错误的密码),事件就会被触发,但效果不会。我无法弄清楚问题是什么。

有问题的@Effext():

以这种方式构建的所有效果器都是一样的。

在此处输入图像描述

0 投票
2 回答
2051 浏览

angular - 如何从ngrx效果多次调度相同的动作

我想从我的效果中多次分派一个动作,为此我正在使用concatMap,但是当我分派相同的动作时,它会被下一次分派取消。有没有办法在之前的分派完成时分派一个动作。

下面的代码将有助于更好地理解问题。