【发布时间】:2019-02-12 14:28:26
【问题描述】:
我有一个简单的功能模块,它提供服务并将自己的统计片段作为功能导入:
@NgModule({
imports: [
CommonModule,
StoreModule.forFeature('alarms', alarmsReducer, { initialState: alarmsInitialState }),
EffectsModule.forFeature([AlarmsEffects])
],
declarations: [],
providers: [
AlarmsFacade,
AlarmsService
]
})
export class AlarmsModule {
}
我在另外两个模块中导入这个模块,一个需要访问服务的页面和AppModule,因为我需要在这里导入它才能正确初始化状态。
当我检查 Redux DevTools 时,我可以清楚地看到 @ngrx/store/update-reducers 为功能 alarms 调用了两次。这会导致状态被冻结,停止所有效果(包括与警报功能无关的效果)。
下面的时间线可以显示问题(第三个@ngrx/store/update-reducers 动作在效果初始化后触发,而目前只有两个功能,它包含功能“警报”的减速器):
如何避免两次加载效果?我试图从AppModule 中删除该模块,但它打破了警报状态,因为我的选择器没有提供默认值。
【问题讨论】:
-
需要repro才能解决这个问题。
标签: angular ngrx ngrx-effects