问题标签 [ngrx-selectors]

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 回答
72 浏览

javascript - 如何从ngrx选择器Observable访问嵌套属性?

初始数据定义和接口:

我在选择器文件中有以下选择器:

从组件文件访问第二个:

并从模板文件中:

这工作正常。

但是,以下返回错误“未解析的变量版本”

如何以这种方式访问​​变量 version.Version?

0 投票
0 回答
26 浏览

angular - ngrx 具有额外属性但没有实体的功能状态初始化

在使用的 Angular 项目中,NX Workspace我有一个空的根存储和不同的功能状态。

我最初初始化了一些不属于实体模型的特征状态属性(参见LandleistungState下面的状态接口)。然后在稍后阶段将实体添加到状态中。

这会在选择器中产生一些问题,因为我不能使用selectAllselectEntities方法,因为我得到一个异常,说实体是未定义的。这很清楚,因为还没有实体存在,但这让我怀疑我的方法是否仍然正确,或者我可能犯了一些概念上的错误。

有没有办法在像我这样的情况下继续使用selectAllselectEntities方法,状态已经初始化,但还没有存储实体?在这种情况下,方法不应该简单地返回 null 吗?

在此处输入图像描述

根存储 - app.module.ts

特征状态

特征减速器

实体模型

特征选择器

0 投票
0 回答
36 浏览

angular - Ngrx 选择器直接或复合

我有这个状态

用这个选择器

为了避免额外的渲染我想要一个单一的选择器什么是最好的方法以及为什么

直接的

或者

0 投票
0 回答
10 浏览

angular - 为什么使用 reducerManager 会给我不正确的状态

reducerManager用来在全局对象中添加我的减速器。

例如,如果我写

const reducer = createReducer( initialState, on( doSomething, state => state ) );

然后:

reducerManager.addReducer( 'reducer', reducer );

在我的组件中使用 select 我需要写:

val:Observable<any> = this.store.select( state => state.reducer.val );

我的问题是为什么我不能只写:

val:Observable<any> = this.store.select( state => state.val );

这是使用减速器管理器的含义还是我出错了?

我已经向我的经理添加了许多减速器,并且在将名称写为状态属性以获得我的最终值之后,我总是得到相同的存储状态(顺便说一句,这些状态是共享的,它的目的是什么?)