首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度存储状态未定义

角度存储状态未定义
EN

Stack Overflow用户
提问于 2019-03-28 20:58:09
回答 1查看 1.1K关注 0票数 1

我有一个Angular 7应用程序,它使用带有实体的ngrx-store。有一个问题,我的存储状态的元素在我的效果中是未定义的。

以下是该效果的一个片段:

代码语言:javascript
复制
@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);
      }));
  }));

我的reduer包括以下内容:

代码语言:javascript
复制
export interface AccountSummariesState extends EntityState<AccountSummary> {
  loading: boolean;
  loaded: boolean;
}

初始状态如下:

代码语言:javascript
复制
export const initialAccountSummariesState: AccountSummariesState = adapter.getInitialState({
  loading: false,
  loaded: false
});

reducer是这样初始化的:

代码语言:javascript
复制
export function reducer(
  state = initialAccountSummariesState,
  action: fromAccountSummary.AccountSummaryActionsUnion
) {
  // ...
}

状态和减法器的注册方式如下:

代码语言:javascript
复制
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在我的效果中没有定义?据我所知,我已经正确地注册和初始化了所有内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-28 21:24:58

在ngrx模块中,你正在创建accountSummary特性,但是你调用了accountSummaries键。尝试将call更改为storeState.accountSummary

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55398263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档