首页 > 解决方案 > 如何使用 ngrx 实体选择器?

问题描述

我将ngrx实体用于我的商店,我无法使用选择器选择商店实体。我按照本示例中的代码 https://github.com/angular-university/angular-ngrx-course/blob/master/src/app/courses/course.selectors.ts

在我的情况下,当我在商店中使用选择时,我得到的是商店对象而不是实体。

这是我的减速机:

减速器

这是选择器: 选择器

这是组件: 在此处输入图像描述

这是商店中选择的日志,我期望一个实体对象,我得到了这个:在此处输入图像描述

这是商店:在此处输入图像描述

标签: angularjsngrxngrx-storengrx-entity

解决方案


这是因为选择器被包装在一个函数中。

const selectAll = () => createSelector(selectFoo, entities.selectAll);

因此,您必须调用该函数来获取选择器的数据而不是存储。

this.data = this.store.select(selectAll());

但我的问题是为什么选择器被包装,这并不是真正需要的。你可以做:

const selectAll = createSelector(selectFoo, entities.selectAll);

在您的组件中,您可以像现在一样使用它:

this.data = this.store.select(selectAll);

有关更多信息,请查看我的文章NgRx:参数化选择器


推荐阅读