Вам также необходимо добавить модуль EffectsModule в модуль приложения.В соответствии с документами на https://ngrx.io/guide/effects на шаге 2 упоминается, что:
Зарегистрируйте модуль EffectsModule в корнях вашего приложения.Этот EffectsModule должен быть добавлен в корневой каталог NgModule
для регистрации поставщиков эффектов и запуска их при загрузке приложения.
Если вы хотите иметь EffectsModule только для функцийи недоступен для root, тогда вы можете сделать:
app.module.ts
import { EffectsModule } from '@ngrx/effects';
@NgModule({
imports: [EffectsModule.forRoot([])],
})
export class AppModule {}
и в вашем модуле вы можете иметь тот же код:
imports: [
CommonModule,
RouterModule,
DataTableModule,
ModalModule,
SelectListModule,
StoreModule.forFeature('estateOwners', EstateOwnerReducer),
EffectsModule.forFeature([EstateOwnersEffects]),
]
В документах также есть примечание:
Примечание. Запуск класса эффектов несколько раз с помощью forRoot () или forFeature () (например, с помощью различных загруженных с отложенной загрузкой модулей) не будетзаставлять эффекты запускаться несколько раз.Не существует функциональной разницы между эффектами, загружаемыми forRoot () и forFeature ();важное различие между функциями состоит в том, что forRoot () устанавливает провайдеров, необходимых для эффектов.