问题标签 [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 投票
2 回答
15875 浏览

angular - 从 ngrx/store 获取单个项目

我编写了以下减速器来将状态项存储在我的 Angular 2 应用程序中。这些项目是金融工具(例如股票/货币)的报价。

我的减速器实现如下:

}

我设法让插入、更新和删除工作——尽管这并不容易。我发现 Redux 是一种范式转变,与我多年来的编码方式不同。

我的应用程序上有一个仪器组件/页面 - 它显示了一个特定仪器的所有可用信息,由 InstrumentId 指示,例如“EUR/USD”(存储在 payload.Instrument 属性中)。

我的问题是,我不确定如何有效地搜索特定乐器并将其从商店中抢走。不仅如此,如果商店中的仪器更新,我还希望更新我获取的仪器,因为它们经常通过服务器的 websocket 推送。所以我真的需要在商店中搜索特定仪器,并将其作为 Observable 返回,它将根据推送到商店的新数据继续更新视图组件。

我怎样才能做到这一点?

0 投票
2 回答
3992 浏览

angular - ngrx/effects switchMap 不再在 Angular2 RC5 中工作

我在我的 Angular2 应用程序中使用 ngrx/effects,自从 RC5 发布以来,我遇到了错误。这是我的代码:

上面的代码在带有ngrx/effects 1.1.1的Angular2 RC4中运行良好。

但是当我将 Angular 升级到 RC5 时,我得到了错误:Unhandled Promise rejection: this.updates$.ofType(...).switchMap is not a function

然后我将ngrx/effects升级到最新版本2.0.0-beta.2(根据文档应该为新的RC5 NgModule定制)但得到了与上面完全相同的错误。是的,我在这一步中将whenAction()功能更改为。ofType()

有任何想法吗?

0 投票
2 回答
740 浏览

angularjs - 如何在 Angular 2 应用程序中保存全局可见用户?

登录后我得到用户

我如何实现这个用户服务?* 我想获得一些用户数据而不需要新的后端调用?** 我知道https://github.com/ngrx/store,也许有人知道更好的解决方案?

0 投票
1 回答
1632 浏览

javascript - 如何为 rc5 配置 angular-cli 项目?

尝试安装 angular-cli 以使用 angular 2 rc5,但我遇到了一些错误:

找不到名称“承诺”

我已经安装了“npm install -g angular-cli@webpack”,他似乎没有安装类型,所以 webstorm 不知道“承诺”。

我尝试过的没有成功:

1.我安装了'npm install typings --save',但没有任何变化。

2.在我启用的webstorm项目配置中:(没有帮助)

3.在 tsconfig 中,我将目标从 es5 更改为 es6,现在 webstorm 识别 promise/then/catch 但 typescript 抛出他不知道的错误,现在我在每个组件的每个类上都面临新错误:

这很奇怪,因为在 tsconfig.json 中:“experimentalDecorators”:true。即使是假的,也没有改变。

ngrx 安装错误和警告:

在另一个主题中,尝试安装 ngrx/core 时:'npm install @ngrx/core --save'

安装结束是:

安装时我收到相同的警告:'npm install @ngrx/store --save'。

我在导入数组的 app.module.ts 中添加了:'StoreModule.provideStore({EmptyReducer})'。在“ng serve”之后,我在控制台中收到以下警告:


我的项目中的一些代码(这是空项目):

app.module.ts:

tsconfig.json:

package.json:(我手动安装了'npm install typings --save')

非常感谢您的阅读。

0 投票
1 回答
228 浏览

angular - Angular2 RC5 WebPack ngRx 热模块更换

我以前使用过这里找到的方法让 HMR 与 RC4 一起使用 Webpack 时保持 ngRX 状态。

使用 RC5 和 ngModules,引导过程发生了变化,我正在努力了解如何调整以前的方法来解决这个问题。

谁能指出我正确的方向或建议另一种方法?

0 投票
4 回答
7423 浏览

javascript - @ngrx/store with Angular 2:无法读取未定义的属性

我正在尝试使用 Angular 2 - RC4 学习 @ngrx/store。我有一个从我的组件调用的服务,我只是想在它发生变化时控制台记录一个车辆列表。

车辆

车辆减速机

main.ts

车辆服务

应用组件

但是当它运行时,我得到一个 TypeErrorTypeError: Cannot read property 'vehicles' of undefined

第一个 console.log 返回一个 Store 对象,但订阅似乎失败了。

知道我做错了什么吗?

0 投票
1 回答
559 浏览

ngrx - reducer 中的 @ngrx/store 和 switch 语句问题

我有以下两个@ngrx/store 减速器:

但是,由于某种原因,当我为第一个减速器(即)发出调度时,currentUserAccountReducer它会更改第二个减速器(即authenticatedReducer)的状态......

这是导致此问题的调度:

这是我在该imports部分中初始化商店的方式:

有人可以提供建议吗?

编辑:问题是authenticated结束了undefined

0 投票
1 回答
2565 浏览

javascript - Angular 2、ngrx/store、RxJS 和树状数据

我一直在尝试找出一种方法,将 select 运算符与 rxjs 的其他运算符结合使用来查询树数据结构(在存储中标准化为平面列表),以保持 ChangeDetectionStrategy.OnPush 的引用完整性语义,但我的最佳尝试会导致当树的任何部分发生更改时重新渲染整个树。有没有人有任何想法?如果您认为以下接口代表存储中的数据:

我需要创建一个非规范化上述状态的选择器,以返回实现以下接口的对象图:

也就是说,我需要一个函数,它接受一个 Observable<ApplicationState> 并返回一个 Observable<TreeNode[]> ,这样每个 TreeNode 实例都保持引用完整性,除非它的一个子实例已更改

理想情况下,我希望图表的任何一部分仅在其子节点发生更改时才更新,而不是在任何节点更改时返回一个全新的图形。有谁知道如何使用 ngrx/store 和 rxjs 构建这样的选择器?

有关我尝试过的各种事情的更具体示例,请查看以下代码段:

0 投票
1 回答
1614 浏览

angular - ngrx/store 如何创建依赖reducer

我对 redux 非常陌生,尤其是 ngrx/store。我找不到关于这个主题的例子,我希望你们能指出我正确的方向。我想要实现的是一个名为 freedownloads 的组件,它调度一个动作,该动作应该更新另一个名为 counter 的组件的状态。特别是布尔值可以下载。目前我有 2 个减速器。我应该使用 combineReducers 吗?你有什么例子吗?我正在使用最新版本的ngrx/store (2.1.2)

非常感谢你!

0 投票
2 回答
830 浏览

angular - 无法使 @ngrx/store 正常工作

我有这个工作的 Angular 2 应用程序。我正在尝试将 @ngrx/store 添加到应用程序,但似乎我无法使其工作。这是我必须要做的:

product.component.ts

产品.reducer.ts

产品.service.ts

我觉得我快到了,因为 {{products | async}} 显示结果。我只是没有得到 *ngFor 给我带来的错误:

原始异常:找不到类型为“object”的不同支持对象“[object Object]”。NgFor 仅支持绑定到 Iterables,例如 Arrays。

我的意思是我确实理解它的含义,但我不知道为什么会这样。我觉得我完全有 tutos 显示的内容......

我用过的链接:

不幸的是,几乎所有东西都过时了(不是 RC5)。

更新:我只是意识到如果我这样做 {{products | 异步 | json}} 在我的 html 文件中,我得到了所有数据。所以它起作用了,我只是不明白为什么我会在 *ngFor 中出现这个错误。