angular - 角度存储状态未定义
问题描述
我有一个 Angular 7 应用程序,它使用 ngrx-store 和实体。存在一个问题,即我的商店状态的元素在我的效果中未定义。
这是效果的片段:
@Effect()
loadAccountSummaries$ = this.action$.pipe(
ofType(fromAccountSummary.LOAD_ACCOUNT_SUMMARIES),
withLatestFrom(this.store),
filter(([ action, storeState ]: [ Action, State ]) => {
// storeState.accountSummaries is undefined
return !(storeState.accountSummaries.loaded || storeState.accountSummaries.loading)
}
),
switchMap(() => {
this.store.dispatch(new LoadingAccountSummaries());
return this.accountSummaryService.loadAccountSummaries()
.pipe(map(accountSummaries => {
this.store.dispatch(new LoadingAccountSummaries());
return new fromAccountSummary.LoadAccountSummariesSuccess(accountSummaries);
}));
}));
我的减速器包括以下内容:
export interface AccountSummariesState extends EntityState<AccountSummary> {
loading: boolean;
loaded: boolean;
}
初始状态是这样的:
export const initialAccountSummariesState: AccountSummariesState = adapter.getInitialState({
loading: false,
loaded: false
});
reducer 是这样初始化的:
export function reducer(
state = initialAccountSummariesState,
action: fromAccountSummary.AccountSummaryActionsUnion
) {
// ...
}
state 和 reducer 是这样注册的:
export interface State {
accountSummaries: fromAccountSummary.AccountSummariesState;
contributionDetails: fromContributionDetail.ContributionDetailState;
}
export const reducers: ActionReducerMap<State> = {
accountSummaries: fromAccountSummary.reducer,
contributionDetails: fromContributionDetail.reducer
};
@NgModule({
imports: [
// ...
StoreModule.forFeature('accountSummary', reducers.accountSummaries),
StoreModule.forFeature('contributionDetail', reducers.contributionDetails),
EffectsModule.forFeature([ AccountSummaryEffects, ContributionDetailEffects ])
// ...
]
})
为什么storeState.accountSummaries
我的效果中我的未定义?据我所知,我已经正确注册并初始化了所有内容。
解决方案
在 ngrx 模块中,您正在创建accountSummary
功能,但您调用accountSummaries
key。尝试将呼叫更改为storeState.accountSummary
推荐阅读
- c# - 通过 IEnumerable-hidden 多对多导航属性查询,无需客户端评估
- javascript - 获取自定义节点服务器以外的语言包的替代方法 next-i18next?
- extjs - 如何通过单击网格 ExtJS 6 中的一个单元格来选择记录
- java - 为什么长数组初始化在java中显示错误?
- java - 插件选择中未列出已安装的插件
- java - 嗨,我有这个要重修的课程的家庭作业,我遇到的问题是我想太多解决方案
- android - 是否可以让安卓应用在特定设备上以不同方式运行?
- java - 如何在不复制代码的情况下在不同的活动上做同样的事情
- typo3 - TYPO3 Extbase sort foreign Model (1:n)
- c# - 使用 NEST 中的集合之一查询一个值