Am new in angular and ngrx store concept(ngrx and angular version is 13).
am trying to call an action form my createEffect
method in effects.ts file
createEffect
method look like this
loadData$ = createEffect(() => this.actions$.pipe(
ofType('[Data] Load data'),
mergeMap(() => this.myService.getDataApi()
.pipe(
map((data: Data[]) => ({
type: '[Data] Load Success',
payload: { data},
selectedData:data[0],
return setData(selectedData),
}
)),
catchError((error: any) => of({
type: '[Data] Load Failure',
payload: { error },
}
))
))
)
);
Here am calling an API called getDataApi
. Once i received the data from back end,setting payod and type.Finally am calling setData
and pass the fist value from response.
SetData action
export const setData = createAction(
'[Data] Set Selected',
props<{ selectedData: Data}>(),
);
error
Thanks in advance.
What's up with your code? This is a wrong part obviously:
map((data: Data[]) => ({
type: '[Data] Load Success',
payload: { data},
selectedData:data[0],
return setData(selectedData),
}
)),
Change with:
switchMap((data: Data[]) => setData({ selectedData: data[0] })),