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

javascript - 使用 NGRX 更改状态后如何执行一些代码?

我正在使用 Angular 2.0 和 NGRX 开发应用程序。我来自 React/Redux,所以我还在研究如何做一些事情。

当我想在模板中打印一些东西时,我可以这样写:

但是现在我想在值更改后执行一些代码(它将使用商店的值作为输入(之后将更改视图)

我知道我可以componentWillReceiveProps在 React 中做到这一点。

我发现唯一有用的是这样的:

我不认为这是一种优雅的方式,但我想不出另一种方式。人们告诉我使用服务(我不知道这如何适合这种情况),我已经阅读过@Effects,但我没有不知道是不是我要找的。

谢谢!

0 投票
1 回答
322 浏览

typescript - 将 Angular2 '@ngrx/router' 替换为 '@angular/router';“路由器”类型上不存在属性“地图”。& path() 不存在

ngrx/router在我的应用程序中使用它,我想恢复或替换它到组件路由器。我注意到这两个模块都有一个“路由器”对象,并且我在其中包含了路由器,如下所示:

我现在有:

我在这里和那里提取的其他项目,但我得到了两个主要错误,我想知道是否有人可以提供替代方法或为我遇到的两个错误提供解决方案......第一个错误是

因为以前的路由器是一个 obeserable,所以我做了很多这样的事情:

第二个问题是 Angular 组件路由器没有path()返回当前 URL 的方法......有人知道在 Angular 组件路由器中执行此操作的方法吗?我目前正在查看文档并试图找到一篇关于如何进行切换的文章。

提前谢谢了。

0 投票
1 回答
110 浏览

javascript - Store.select 错误?

Store.select 应该得到一个字符串,告诉他我想观察商店的什么属性,但问题是他没有这些属性。在 Insead 中,他将 reducer 功能作为公开状态属性的属性。

通过https://github.com/ngrx/store很容易注意到有问题。

他们的代码:

我的代码:

下面的代码将工作并做它需要做的一个大错误:

为什么打字稿会抛出这些错误?我该如何解决?

0 投票
2 回答
2197 浏览

angular - Angular 2如何强制动画重播

每次输入更新时,我都试图为 DOM 元素重新激活相同的动画。

动画被定义为分配给 css 类的 css 关键帧,我现在使用的触发器是通过删除然后重新分配该 css 类,稍微延迟以使浏览器能够处理和渲染它在收到新的之前进行更改。在我看来,这充其量是繁琐的,而且更容易出错。

据我了解,它也不完全是 angular 2 动画的意义所在,因为它们之间并没有真正的不同状态和转换,而只是我希望一遍又一遍地重新激活的动画。

我遇到了这篇文章,它似乎支持我需要的东西,因为它公开了“onComplete”等,但根据最新的 Angular RC,它已经过时了。

我错过了什么吗?有没有办法在不编写我自己的“动画”API 的情况下优雅地做到这一点,这样它就不会那么严格地依赖于硬编码的定时值?如果可能的话,我还希望解决方案在性能方面不会太昂贵。

我非常感谢您对此的意见。

这是我目前在 Plunkr 上的虚拟实现。

0 投票
3 回答
10800 浏览

ngrx - 如何清除#ngrx 中的状态?

我正在使用 Ngrx 和 Angular2 构建一个移动应用程序。当用户从我的应用程序中注销时,我想清除商店?谁能知道该怎么做?

0 投票
1 回答
2142 浏览

javascript - Observable.switchMap 不起作用并且没有任何错误

使用 ngrx.store 和 states 时,我遇到了一个错误(?)。

在我发送新状态并且减速器返回新状态之后,什么都没有发生。订阅不会收到任何错误消息。 如果我删除 switchMap,代码会起作用,并且订阅者会得到他应该得到的值。

我尽可能地最小化了我的代码:

我的减速机:

我确实将 switchMap 导入为:“import 'rxjs/add/operator/switchMap';”

0 投票
1 回答
585 浏览

rxjs - RxJs subscribe 有效,但 map 无效

我有一个这样的 ngrx 商店: export default compose(storeLogger(), combineReducers) ({ auth: authReducer, users: userReducer }); 在服务中,我尝试执行以下操作:

除了订阅,没有运营商工作。为什么?

0 投票
0 回答
1480 浏览

angular - 更改 URL 中的路由参数 - 使用 @ngrx/router 的 Angular 2

尝试构建语言选择器并在选择语言后更改 URL(仅限 lang 参数)。

如果我访问 example.com/en/register,我可以使用此代码获取 lang 参数的值。

更改语言后如何更改此值?我怎样才能获得完整的 URL 路径?

伪代码:

谢谢

0 投票
1 回答
425 浏览

angular - 当先前值与当前值相同时,如何为@Input 值运行更改检测(更新模板)?

当先前值与当前值相同时,如何为@Input 值运行更改检测(更新模板)?

演示:https ://plnkr.co/edit/Rvz2ElLjM20R3nC6ZQWt?p=preview

我正在使用ngrx.

用例:如果输入值为空,我想在模糊事件之后为输入设置默认值。

输入:

[value]="inputValue"-@Input哑组件的值,取自store -> format。我以store这种方式从中获取价值:

两者兼而有之。keyup_blurupdateFormat

我的问题是,如果插入的值与之前的值相同,则事件后的blur事件[value]="inputValue"不会更新。storestore

例如:

1)存储值:22 =>输入值:22 =>清除(剪切)输入值=>模糊事件=>输入为空,将默认值(1)设置为存储=>存储值:1 =>输入值: 1

2)存储值:1 =>输入值:1 =>清除(剪切)输入值=>模糊事件=>输入为空,将默认值(1)设置为存储=>存储值:1 =>输入值: '' (空的)

那么,我该如何解决这个问题?

0 投票
0 回答
886 浏览

angular - Reactive-Redux Store.select 触发两次

通过 behaviorSubject 定义动作管道并将 ngrx/store 订阅为 Observer 有什么好处?

例如。