问题标签 [ngrx]

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

angular - ngrx/商店选择不存在

我正在尝试使用以下代码重新创建 ngrx/store 示例项目,我知道这对于 TODO 应用程序来说有点矫枉过正,但我​​想把这些概念记下来:

此代码正在创建两个编译时错误:

我在 Observable 导入上尝试了许多不同的变体,但这似乎并不重要,所以我只是采用了示例应用程序的内容:

任何帮助将不胜感激!

0 投票
0 回答
158 浏览

angular - @ngrx/router 不适用于 Angular 2 rc5

我有一个简单的模块

但是现在我在构建我的项目时遇到了错误。

在 RC4 上一切正常。我在 github 中没有找到任何关于它的错误报告。也许我应该以其他方式做到这一点?

0 投票
3 回答
8205 浏览

javascript - Angular 2:服务和redux之间的区别

redux 的需要是什么,因为我们还可以从服务中保存和获取数据,据我了解,我们还可以获取数据并将其保存到服务中,并且这些服务可以被其他组件使用。

0 投票
4 回答
39773 浏览

javascript - ngrx 中的 store.select 是什么

我是 Redux 的新手,从 ngrx 开始。我无法理解这行代码的含义store.select

0 投票
1 回答
114 浏览

reactjs - 在 redux 存储中的列表之间移动引用

在我的商店中,我有多个引用规范化实体的 id 列表。它看起来像这样:

用户可以编辑项目并且可以选择项目应该在哪个列表中。如果用户在编辑时更改了列表,我找不到一种优雅的方式将项目从一个列表移动到另一个列表。要移动一个项目,我必须从旧列表中删除 item-id 并将其添加到新列表中。

将 Id 写入新列表后,我应该如何从旧列表中删除它?查看 ID 的每个列表,如果发现删除它对我来说似乎有点不对劲。

编辑:

进一步解释我的用例:可以有 n 个列表,它们是日期,例如“08-17-2016”,其中的项目是事件。用户可以更改事件的日期,因此事件需要从一个日期移动到另一个日期。

0 投票
1 回答
2267 浏览

angular - Angular2 NGRX/商店视图未更新

很抱歉还有另一个 Angular 2 视图更新问题,但我无法在任何其他回复中找到答案。我在这里提到了 NGRX/Store 的使用,尽管我怀疑它是视图没有更新的原因。奇怪的是,它似乎更新了一次(至少)但设法落后了一步。最后(最近的)更新永远不会生效。当模型更新时,视图中的先前状态会更新。真是令人难以置信。这是适当的代码。

相关安装包

我的主要应用程序模块

我的应用程序组件

我的应用程序模板

应用管理服务

当第一次点击“我的应用程序”页面时,这就是最终被打印出来的内容。

在此处输入图像描述

这就是视图结束的地方。

在此处输入图像描述

奇怪吧?您可以看到页面已更新为从 NGRX/Store 广播的第二个状态,但不是包含真正面包和黄油的最终状态(6 个应用程序的列表)。为什么视图不能正确更新?

0 投票
0 回答
690 浏览

angular - 带有ngrx/store的Angular 2:如何在reducer之间共享数据?

我的应用程序中有一个简单的列表组件。我希望列表项可以选择。所以我的应用程序状态如下所示:

我的引导程序:

List 的行为很简单。单击 - 项目的 ID 添加到选定的数组,其他被清除。Ctrl+Click - 项目的 ID 添加到选定的数组,其他保留。使用当前结构很容易实现。

但我也希望可以使用 Shift+Click 选择一系列项目 - 在这种情况下,也应该选择上次选择和当前项目之间的所有项目。为此,我不仅需要知道当前项目,还需要知道最后选择的项目,并有权访问列表以查找它们之间的项目。但显然我无权访问itemsin SelectedReducer

那么我该怎么做呢?我是否应该考虑重组我的商店,所以items并且selected会处于一个状态对象中?还是使用redux-thunk(似乎有点过头了)?还有其他选择吗?

0 投票
3 回答
5897 浏览

angular - Angular2 @ngrx/store / effects - 在哪里调用服务函数

我正在使用@ngrx/store 和@ngrx/effects 制作一个Angular 2 应用程序。

我正在努力理解将逻辑放在动作/效果等之外的位置以及调用服务功能的位置。

例如,通过身份验证...

  1. 当用户单击登录AUTH_REQUEST时,这将使用登录凭据作为有效负载分派一个操作。
  2. 效果会查找此操作并调用 API。
  3. 成功的结果调用AUTH_SUCCESS响应对象中带有令牌、用户名等的操作作为有效负载,该有效负载将发送到 reducer 以更新AuthState.

例如:在AuthEffects

AuthReducer

我想知道的是:

  1. 处理完操作后在哪里调用路由器以更改页面AUTH_SUCCESS。我是从效果反应链中执行此操作还是......??
  2. 我有一个AuthService需要将凭据(令牌等)存储在 LocalStorage 中。我应该在哪里调用它来“存储令牌”,即authService.store(userCredentials).

任何帮助表示赞赏。

0 投票
1 回答
300 浏览

angular - ngrx 与 Angular 2 RC5

我正在尝试将 ngrx 与 RC5 一起使用,但我得到了一些有线行为。状态更改被 ngrx 日志监视器正确捕获,但它们不会发送给我的订阅者。

但是,一旦我更改页面(我正在使用@angular/router 3),我所有的状态更改都会一一发送给订阅者。

这是代码示例

当我第一次导航到页面时,我得到了最新状态,但没有捕获后续更改。然后,一旦我从页面导航并返回到页面,我就会得到状态更改。

我知道这对于一个有效的问题来说是不够的,但是它太多了,我不知道从哪里开始复制所有这些。我只是希望有人在 RC5 中处理过类似的问题。

在迁移到 RC5 之前,所有代码都可以正常工作。

0 投票
3 回答
5173 浏览

ngrx - @ngrx/store 忽略第一个发出的值

store.select()发出先前的存储状态。

是否可以在不获取先前存储值的情况下从“这一点向前”订阅更改?