J'ai un module de fonctionnalités simple, qui fournit des services et importe son propre fragment de statistiques en tant que fonctionnalité :
@NgModule({
imports: [
CommonModule,
StoreModule.forFeature('alarms', alarmsReducer, { initialState: alarmsInitialState }),
EffectsModule.forFeature([AlarmsEffects])
],
declarations: [],
providers: [
AlarmsFacade,
AlarmsService
]
})
export class AlarmsModule {
}
Et j'importe ce module dans deux autres modules, une page qui a besoin d'avoir accès aux services, et AppModule
car j'ai besoin de l'importer ici pour que l'état soit initialisé correctement.
Lorsque je vérifie Redux DevTools, je peux clairement voir que @ngrx/store/update-reducers
est appelé deux fois pour la fonctionnalité alarms
. Cela entraîne une stagnation de l'état, stoppant tous les effets (y compris ceux qui ne sont pas liés à la fonctionnalité des alarmes).
Le chronogramme ci-dessous peut montrer le problème (une troisième action @ngrx/store/update-reducers
est déclenchée après l'initialisation des effets alors qu'il n'y a que deux fonctionnalités pour le moment, cela contient des réducteurs pour la fonctionnalité 'alarms') :
Comment puis-je éviter que les effets soient chargés deux fois ? J'ai essayé de supprimer le module de AppModule
mais cela casse l'état des alarmes car aucun état par défaut n'est fourni pour mes sélecteurs.