Search code examples
angularngrxngrx-effects

How to get action parameter in effect NgRx?


I send action with parameter and replace (9) on (block.id)?

 this.store.dispatch(RegistryActions.LoadRegistryLayersAction(this.block));

How to get this parameter in effect?

  loadRegistriesLayers$: Observable<Action> = createEffect(() =>
    this.actions$.pipe(
      ofType(RegistryActions.LoadRegistryLayersAction),
      switchMap(() =>
        from(this.registryService.getRegistryPolygonsPolygons(9)).pipe(
          map((layers: { [key: string]: RegistryLayerItemGeneric[] }) => {
            return RegistryActions.SuccessLoadRegistryLayersAction({
              payload: layers,
            });
          }),
          catchError((error: Error) => {
            return of(RegistryActions.ErrorRegistryLayersAction(error));
          })
        )
      )
    )
  );

Solution

  • You should be able to access it in the switchMap, like so:

    switchMap((action: {..your type}) => 
        from...