【发布时间】:2017-09-08 05:10:13
【问题描述】:
有没有办法将参数传递给ngrx select函数?
以下是我的用例:
我正在维护商店中的 cmets 列表。
我写了一个组件来代表一个评论。所以,一个 CommentComponent 知道组件对象的 id
每条评论都会有 likelikeBy、reportBy、...等属性 在 UI 中,我使用 *ngFor 显示所有组件
现在我希望我的 CommentComponent 使用组件的 id 只订阅一个评论对象。
现在我订阅了顶级组件中的所有 cmets,并将每个评论作为输入传递给 CommentCompoent。
当前的方法并不干净,因为角度变化检测策略(即使我使用 onPush)必须为所有 cmets 渲染 DOM,即使只有一个评论发生变化。
感谢我可以将评论 id 传递给选择器函数的任何建议,以便每个 CommentComponent 只能订阅一条评论。
提前致谢, 苏达卡
【问题讨论】:
-
您是否在评论组件中订阅了您的评论?如果是,您应该订阅父组件中的数组并使用@input 传递它们中的每一个。你应该让你的评论组件尽可能的愚蠢;)
-
@Maxime 目前我正在做与您提到的相同的事情,但是每当任何一条评论发生变化时,角度都会花费太多时间来呈现
-
这很奇怪。开源回购?你能在 Plunkr 或 Stackblitz 上重现吗?
-
我知道这是旧的,但你在使用 track by 吗?这应该可以防止屏幕重新渲染 cmets 组件。你也找到了答案吗?我想要一个不同的用例。
-
追踪依据是什么?
标签: angularjs ngrx ngrx-store-4.0