我是Angular 17的新手,关于如何将NGRX与新的独立模块或组件一起使用的文档非常有限。
我已经安装了ngrx效果:
npm install @ngrx/effects
字符串
但是现在,因为我的应用程序没有app.modules.ts文件,所以我很难使用我的效果。
import { ApplicationConfig } from '@angular/core';
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
import { provideStore } from '@ngrx/store';
import { reducers, metaReducers } from './reducers';
import { provideEffects } from '@ngrx/effects';
export const appConfig: ApplicationConfig = {
providers: [provideRouter(routes), provideStore(reducers, { metaReducers }), provideEffects()]
};
型
https://ngrx.io/api/effects/provideEffects
以下是我尝试使用的效果:用途:
@Injectable()
export class PrioritiesEffects {
getPriorities$ = createEffect(() =>
this.actions$.pipe(
ofType(PrioritiesActions.getPriorities),
mergeMap(() => {
return this.prioritiesService.getPriorities().pipe(
map((priorities) => PrioritiesActions.getPrioritiesSuccess({ priorities })),
catchError((error) =>
of(PrioritiesActions.getPrioritiesFailure({ error: error.message }))
)
);
})
)
);
constructor(private actions$: Actions, private prioritiesService: PrioritiesService) {}
}
型
在provideEffects中,他们给予了一个如何在路由器上使用该功能的例子,但我不确定如何做到这一点?
import { Routes } from '@angular/router';
import { PrioritiesComponent } from './priorities/priorities.component';
export const routes: Routes = [
{ path: 'priority', component: PrioritiesComponent },
];
型
如何将NGRX provideEffects与Angular 17独立注册?
2条答案
按热度按时间6yjfywim1#
尝试创建单独的app.effects模块,并尝试将其添加到main.ts文件中。参考下面的代码:
app.effects.module.ts:
字符串
在您的app.effects.ts中:
型
在您的main.ts中:
型
dojqjjoe2#
像这样做:
字符串
阅读更多https://www.angulararchitects.io/en/blog/routing-and-lazy-loading-with-standalone-components/