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

angular - Observable.subscribe() 只工作一次 (ngrx\angular2)

我正在订阅组件构造函数中的存储属性

在服务中,构造函数如下所示:

我不断改变这个对象的状态,但日志只出现一次。同样奇怪的是我this.some直接在我的模板中访问该属性(没有async管道),并且它完美更新!似乎该this.some属性正在更新,但next()订阅中的 不起作用。

帮助任何人?谢谢!

0 投票
1 回答
402 浏览

typescript - 如何使用 ngrx/router 使用子路由器?

当我将不推荐使用的路由器用于子路由器时,我会这样使用:

父路由器:


子路由器:

我正在尝试切换到ngrx/路由器。我怎样才能使用ngrx/router正确地做到这一点?

谢谢

0 投票
1 回答
1885 浏览

angular - @ngrx/router-store 与 @angular/router

使用@ngrx/router-store而不是@angular/router有什么好处和坏处?

0 投票
1 回答
61 浏览

typescript - 如何在 Guard 运行之前将 isSignedIn 设置为 true?

我正在使用ngrx/router

我有一个LoginGuard,当我打开一个需要登录的页面时,LoginGuard 运行之前isSignedIn设置为 true。所以当时isSignedInundefined

我在应用程序的开头设置isSignedIntrue,这是我脑海中最早的地方。

但也许还不够早?那么如何在Guard运行之前设置isSignedIn呢?谢谢true

0 投票
1 回答
54 浏览

typescript - 如何将linkActive应用于多个链接?

我正在使用ngrx/router

我有 4 页。其中两个/admin/dashboard需要/admin/management管理员访问权限。

我可以单击用户管理员在用户或管理员视图之间切换。

当我进入/home/products时,我希望用户处于活动状态。现在只有在 中时/home,它才处于活动状态。

类似地,当我进入/admin/dashboard和时/admin/management,我希望管理员处于活动状态。现在只有在 中时/admin/dashboard,它才处于活动状态。

我怎样才能做到这一点?谢谢

0 投票
1 回答
212 浏览

typescript - 如何在ngrx/router中做routerCanDeactivate?

这是我routerCanDeactivate在弃用的路由器中使用的方式:

如何做与ngrx/router相同的事情?我没有找到任何文件。

谢谢

0 投票
4 回答
12627 浏览

ngrx - 如何使用 ngrx/effects 执行多个相关的操作/效果/动作

我正在开发一个使用 ngrx/store 1.5 和 thunk 中间件的应用程序,我正在尝试迁移到 ngrx/store 2.0 和 ngrx/effects。关于如何处理多个相关动作和/或效果,我有几个问题。

我意识到 thunk 与效果的“心态”是不同的,我正在努力解决这些差异。我查看了可用的示例应用程序,但没有发现任何似乎适合我正在尝试的东西,所以也许我仍然完全错误地接近它。

方案 1

这是处理向服务器发出登录请求的副作用:

鉴于最初的副作用,成功登录后触发导航到“主”屏幕的“正确”或“建议”方式是什么?这也可以概括为简单地触发一系列动作或操作。

我考虑过的几个选项:

(a) 登录成功触发的另一个效果,触发后续动作来触发导航?

(b) 登录成功触发的另一种效果,即简单地执行导航操作?

(c) 将附加动作连接到初始登录效果发出的动作?(样本显然不太正确,但给出了这个想法)

(d) 其他?

方案 2

考虑一个需要按顺序发出多个请求的情况,当每个请求开始时,我们希望更新“状态”以便可以向用户提供反馈。

类似这些方面的事情的例子:

同样,在使用效果方法时,“正确”或“建议”的方法是什么?

这个我更坚持,除了.do(this.store.dispatch(this.actions.updateStatus(...))以某种方式添加一些之外,我不确定还能做什么......

0 投票
1 回答
6791 浏览

typescript - 类型“{}”不可分配给类型“字符串”

我正在使用ngrx/router

当我打开http://localhost/set-new-password/abc时,RouteParams效果很好。token我可以得到我想要的字符串。

但是,我在终端中收到了这个警告:

类型“{}”不可分配给类型“字符串”。

我知道我可以用this.token = String(token);它来摆脱它。

但是为什么会出现这个警告呢?有人可以为我解释一下吗?谢谢

0 投票
2 回答
1819 浏览

angular - 如何在ngrx Angular2中将数据从父路由传递到子路由

我正在使用@ngrx 路由器,其中一条路由有一些子路由器(基本上传递路由参数),如下所示:

category参数可以具有诸如“ free ”、“ top ”、“ paid ”之类的值,这些值使用导航栏路由到。

但是我想添加另一个名为“ all ”的类别值,以添加到导航栏,这应该是应用程序导航到“ /browse ”时的默认值,在这种情况下(我认为)我需要传递一些数据(一个对象实际上)到子路由(即“ /browse/all ”)。子路由(本质上是子路由的组件)需要调用服务时需要此数据。

我通过将 设置为“/browse”来尝试使用index路由,如下所示CategoryComponentindex

但我仍然不确定如何将数据从BrowseComponentto传递给CategoryComponent. 关于如何将数据从父路由组件传递到子路由组件的任何想法?还是我做错了,可以使用其他更好的方法在子路由中添加所有类别。谢谢

0 投票
5 回答
3702 浏览

angular - Redux / ngrx/store 架构:为什么不从哑组件调度操作?

我正在构建一个 Angular 2 ngrx/store 应用程序并尝试了解最佳实践。

  • 我喜欢有一个不可变的状态,它只根据调度的动作而改变,这样应用程序的状态就非常清晰和可调试。
  • 我喜欢从“智能”容器向下流的单向数据,因为这允许我们使用异步管道来减少对状态的检查。

但是我不明白为什么我们要在将动作发送到商店之前将事件从哑组件一直“冒泡”到智能组件。是拥有可重用组件的唯一理由吗?在我看来,大多数组件无论如何都不会被重用,因为在很多情况下我希望所有东西都相同,包括 CSS。我还缺少其他好处吗?从可维护性/可读性的角度来看,能够看到在发生交互的组件上调度的操作不是更好吗?