从根选择器调用功能选择器不会触发角度变化检测

时间:2020-11-05 18:32:23

标签: angular ngrx ngrx-store

在Angular应用程序中,我通过调用调用功能选择器的根选择器来创建可观察的东西。

在这里,我在应用程序的根组件中设置了可观察对象:

this.loaded$ = store.pipe(select(fromRoot.selectLoaded));

这是根缩减器的(app.reducer.ts)选择器,它调用一个单独的功能选择器:

export const selectLoaded = createSelector(
    fromUI.selectLoaded,
    loaded => loaded
  );

这是从功能缩减器(UI.reducer.ts)选择器中选择的,该选择器选择了实际的功能状态:

  export const selectUIState = createFeatureSelector<State, UIState>('UI');
  
  export const selectContactState = createSelector(
    selectUIState,
    state => state.contact
  );

  export const selectLoaded = createSelector(
    selectContactState,
    fromContact.loaded
  );

我已经测试了可观察性本身运行良好:它正确地发出了值。

什么不起作用:发出的值未触发根组件中的Angular变化检测。

之所以会这样,是因为我仅在我的功能模块中(根本不存在根组件的情况下)谈论功能状态?

这来自功能模块:

 StoreModule.forFeature(fromUI.UIFeatureKey, fromUI.reducers)

如何从根组件使用功能状态?

0 个答案:

没有答案