问题标签 [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.
angular - ngrx/商店选择不存在
我正在尝试使用以下代码重新创建 ngrx/store 示例项目,我知道这对于 TODO 应用程序来说有点矫枉过正,但我想把这些概念记下来:
此代码正在创建两个编译时错误:
我在 Observable 导入上尝试了许多不同的变体,但这似乎并不重要,所以我只是采用了示例应用程序的内容:
任何帮助将不胜感激!
angular - @ngrx/router 不适用于 Angular 2 rc5
我有一个简单的模块
但是现在我在构建我的项目时遇到了错误。
在 RC4 上一切正常。我在 github 中没有找到任何关于它的错误报告。也许我应该以其他方式做到这一点?
javascript - Angular 2:服务和redux之间的区别
redux 的需要是什么,因为我们还可以从服务中保存和获取数据,据我了解,我们还可以获取数据并将其保存到服务中,并且这些服务可以被其他组件使用。
javascript - ngrx 中的 store.select 是什么
我是 Redux 的新手,从 ngrx 开始。我无法理解这行代码的含义store.select
:
reactjs - 在 redux 存储中的列表之间移动引用
在我的商店中,我有多个引用规范化实体的 id 列表。它看起来像这样:
用户可以编辑项目并且可以选择项目应该在哪个列表中。如果用户在编辑时更改了列表,我找不到一种优雅的方式将项目从一个列表移动到另一个列表。要移动一个项目,我必须从旧列表中删除 item-id 并将其添加到新列表中。
将 Id 写入新列表后,我应该如何从旧列表中删除它?查看 ID 的每个列表,如果发现删除它对我来说似乎有点不对劲。
编辑:
进一步解释我的用例:可以有 n 个列表,它们是日期,例如“08-17-2016”,其中的项目是事件。用户可以更改事件的日期,因此事件需要从一个日期移动到另一个日期。
angular - Angular2 NGRX/商店视图未更新
很抱歉还有另一个 Angular 2 视图更新问题,但我无法在任何其他回复中找到答案。我在这里提到了 NGRX/Store 的使用,尽管我怀疑它是视图没有更新的原因。奇怪的是,它似乎更新了一次(至少)但设法落后了一步。最后(最近的)更新永远不会生效。当模型更新时,视图中的先前状态会更新。真是令人难以置信。这是适当的代码。
相关安装包
我的主要应用程序模块
我的应用程序组件
我的应用程序模板
应用管理服务
当第一次点击“我的应用程序”页面时,这就是最终被打印出来的内容。
这就是视图结束的地方。
奇怪吧?您可以看到页面已更新为从 NGRX/Store 广播的第二个状态,但不是包含真正面包和黄油的最终状态(6 个应用程序的列表)。为什么视图不能正确更新?
angular - 带有ngrx/store的Angular 2:如何在reducer之间共享数据?
我的应用程序中有一个简单的列表组件。我希望列表项可以选择。所以我的应用程序状态如下所示:
我的引导程序:
List 的行为很简单。单击 - 项目的 ID 添加到选定的数组,其他被清除。Ctrl+Click - 项目的 ID 添加到选定的数组,其他保留。使用当前结构很容易实现。
但我也希望可以使用 Shift+Click 选择一系列项目 - 在这种情况下,也应该选择上次选择和当前项目之间的所有项目。为此,我不仅需要知道当前项目,还需要知道最后选择的项目,并有权访问列表以查找它们之间的项目。但显然我无权访问items
in SelectedReducer
。
那么我该怎么做呢?我是否应该考虑重组我的商店,所以items
并且selected
会处于一个状态对象中?还是使用redux-thunk(似乎有点过头了)?还有其他选择吗?
angular - Angular2 @ngrx/store / effects - 在哪里调用服务函数
我正在使用@ngrx/store 和@ngrx/effects 制作一个Angular 2 应用程序。
我正在努力理解将逻辑放在动作/效果等之外的位置以及调用服务功能的位置。
例如,通过身份验证...
- 当用户单击登录
AUTH_REQUEST
时,这将使用登录凭据作为有效负载分派一个操作。 - 效果会查找此操作并调用 API。
- 成功的结果调用
AUTH_SUCCESS
响应对象中带有令牌、用户名等的操作作为有效负载,该有效负载将发送到 reducer 以更新AuthState
.
例如:在AuthEffects
在AuthReducer
我想知道的是:
- 处理完操作后在哪里调用路由器以更改页面
AUTH_SUCCESS
。我是从效果反应链中执行此操作还是......?? - 我有一个
AuthService
需要将凭据(令牌等)存储在 LocalStorage 中。我应该在哪里调用它来“存储令牌”,即authService.store(userCredentials)
.
任何帮助表示赞赏。
angular - ngrx 与 Angular 2 RC5
我正在尝试将 ngrx 与 RC5 一起使用,但我得到了一些有线行为。状态更改被 ngrx 日志监视器正确捕获,但它们不会发送给我的订阅者。
但是,一旦我更改页面(我正在使用@angular/router 3),我所有的状态更改都会一一发送给订阅者。
这是代码示例
当我第一次导航到页面时,我得到了最新状态,但没有捕获后续更改。然后,一旦我从页面导航并返回到页面,我就会得到状态更改。
我知道这对于一个有效的问题来说是不够的,但是它太多了,我不知道从哪里开始复制所有这些。我只是希望有人在 RC5 中处理过类似的问题。
在迁移到 RC5 之前,所有代码都可以正常工作。
ngrx - @ngrx/store 忽略第一个发出的值
store.select()
发出先前的存储状态。
是否可以在不获取先前存储值的情况下从“这一点向前”订阅更改?