为什么@ngrx/effects触发动作但不改变状态?

Why @ngrx/effects trigger action but doesn't change the state?

我有这个效果:

loadIpInfo$ = createEffect(() => {
    return this.actions$.pipe(
        ofType(loadIpInfo),
        concatMap((action: {ipInfoConfig: IpInfoConfig}) => {
            return this.ipService.getIpDetails(action.ipInfoConfig).pipe(
                map((ipInfoResponse) => {
                    this.store.dispatch(setErrorMessage({ message: '' }));
                    return loadIpInfoSuccess({ ipInfoResponse });
                }),
                catchError(() => {
                    return of(setErrorMessage({ message: 'Unknown error occurred. Please try again' }));
                })
            )
        })
    )
})

它触发操作:loadIpInfo 但不改变状态。

使用断点我看到没有进入concatMap.

我尝试过不同的 rxjs.operators,例如:exhaustMapmergeMap, switchMap 但结果相同.

这个效果的目的是从config.json中获取静态数据并调用 httpClient.get(..) 包含此信息。

我做错了什么?

没有复制品很难说。

确保在 EffectsModule.forRoot([])EffectsModule.forFeature([]) 中导入效果 class。

我有 app.module.ts 是父模块,nav.module.tslazy-loaded模块.

我还有 SharedEffects,我已将它添加到 nav.module.tsforFeature(..),但是触发效果的组件是 app.component.ts 所以它必须添加到 app.module.tsforRoot(..)