问题标签 [ngrx-store-4.0]
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/store 组合功能模块中的多个减速器
我目前正在开发一个简单的测试应用程序,以了解有关@ngrx/store 的更多信息。我有一个名为 TrainingModule 的模块,它应该存储一些练习和更多信息。该代码有效,但我尝试在这里改进。我目前拥有的是我的功能模块,如下所示:
和我的减速器看起来像这样:
到目前为止,一切都很好。在我的模板中,我从商店中选择我的练习
所以我现在想做的是结合我的减速器,这样我就不必像这样添加每个减速器
在我的所有模块中。我试图收集所有减速器
和
但这给了我一个无法读取控制台中未定义错误消息的属性“练习”。也许有人可以帮助我理解,我如何从功能模块中收集所有减速器并为此创建正确的选择器。
node.js - 类'可观察'定义实例成员属性'select',但扩展类'Store' 将其定义为实例成员函数
嗨,我刚刚安装了 angular 4/5。我试图使用 ngrx 商店。当我 npm start 时,出现以下错误。最后,当我在 Angular 2 上工作时,我没有遇到这个问题。我经历了许多 github 讨论,但无法找到解决方案。
ERROR in [at-loader] ./node_modules/@ngrx/store/src/store.d.ts:13:5
TS2425: Class 'Observable<T>' defines instance member property 'select', but extended class 'Store<T>' defines it as instance member function.
以下是我的 package.json:
有什么想法吗?我还需要提供什么吗?提前致谢。
firebase - NGRX 4:如何组合来自多个来源的数据
关于如何在应用状态下组合reducers / data的问题:
数据示例(Firebase):
应用状态:
减速器:
效果:
Firebase 提供者:
艺术家页面:
我的问题是你应该如何在 NGRX4 中组合不同的数据切片?
示例:我有一个艺术家详细信息页面。在该页面中,我想显示艺术家信息以及艺术家的流派。在其他地方,我可能有一个艺术家列表页面,其中显示了多个艺术家及其流派。我在哪里获取和合并我的应用程序中的所有相关信息?在减速机?在效果上(FetchArtistGenres$ 目前是如何做到的)?
其他问题:我不认为我希望在我的应用程序状态中拥有整个“genresPerArtist”或“artists”节点,因为它最终会变得非常大而且我不确定它是否会表现出色(如果我错了在这里,这就是要走的路,让我知道)。相反,我会在需要时获取特定的 Artists 流派节点(/genresPerArtist/${artistId}
)
typescript - Angular 路由器保护和 ROUTER_NAVIGATION 效果顺序
有一个简单的(Angular 4)路由守卫,它等待从后端加载一些数据:
路由:
最后有一个由@ngrx/router-store v4ROUTER_NAVIGATION
动作触发的@ngrx/effects:
不幸的是,当导航更改为/app-list
ngrx 效果时首先执行(在警卫之前),因此数据state.contracts
尚不可用。守卫还没有被处决。
我还必须添加.combineLatest()
Rx 运算符来等待contracts
数据生效(这是警卫的工作):
我不确定这是否足够好的解决方案。必须有更好的方法来做到这一点 - 不要复制有效的保护功能。
总结一下:在应用程序 boostrap 上,我需要从后端获取一些数据 - contracts
。如果用户导航到/app-list
(立即重定向),则从服务器获取其他数据 - 基于一些查询参数和contracts
- ngrx 路由器ROUTER_NAVIGATION
effect
执行顺序在警卫执行顺序之前。如何正确处理?
angular - 状态与 ActionReducer作为 NgRx 减速器返回类型
我正在查看NgRx 提供的示例应用程序的代码。我注意到示例应用程序中的每个reducer 函数都有一个返回值,该值由该State
特定reducer 的接口键入。例如,books reducer 的代码如下:
后来,我在阅读 Oren Farhi 的一本关于 NgRx 的书,名为Reactive Programming with Angular 和 NgRx,偶然发现了一段代码片段,显示了 reducer 函数的通用主体结构(第 24-25 页)。通用结构的代码将 reducer 函数的返回值显示为由ActionReducer
withState
作为类型参数输入(在这种情况下调用SomeInterface
而不是调用):State
为什么一个代码示例使用 State 而另一个使用 ActionReducer 和 State 作为 reducer 函数返回值的类型参数?为什么要选择这些函数签名中的一个而不是另一个?每个服务的目的是什么?
这本书是为 NgRx 2.2.1 编写的,而示例应用程序是为最新版本的 NgRx(版本 4.1.1)编写的。我猜想返回类型的差异不能简单地用 NgRx 版本的差异来解释,因为最新版本的 NgRx 也有 ActionReducer。
谢谢!
angular - “存储”类型上不存在属性“获取”'ngrx/商店
在我的功能中选择状态时,我尝试使用属性“take”,但出现错误Property 'take' does not exist on type 'Store<State>
。拜托,有人知道发生了什么吗?我想这样做的原因是因为我必须确定用户何时单击“添加空间”按钮,该按钮将我的模板更改为表单。由于这种模式也改变了父母的模板,我用@ngrx/store 管理它。
我的代码:
angular - ngRx 4 中的选择器返回存储对象而不是存储中的值
当我尝试检索数据时,我的选择器返回的是 store 对象而不是 store 中的值。
这是我的减速器注射。
这是我的减速器和状态。
这是我的选择器。
我得到的输出是
这就是我访问我的选择器的方式。
提前致谢。
angular - 在 ngrx 4 中使用服务器支持撤消/重做
目标:
在 Angular 4 项目中使用服务器端支持实现撤消/重做功能。例如,从服务器中删除项目必须可以通过相应的(创建)操作撤消。
有一个组件:https ://github.com/PowToon/redux-undo-redo
我正在尝试使用 ngrx-store 4 移植该组件。
问题:
我正在尝试将中间件转换为元减速器,但这似乎不是一件容易的事。我怎样才能调用dispatch
ngrx meta-reducer?如果我不能,我怎么能实现相应的功能?
中间件: https ://github.com/PowToon/redux-undo-redo/blob/master/src/createUndoMiddleware.js
或者,如果有任何更简单的方法可以达到我的目标,那会是什么?