无法从效果中调用操作
Unable to call an action from effect
在 angular 和 ngrx 商店概念中是新的(ngrx 和 angular 版本是 13)。
我正在尝试从 effects.ts 文件中的 createEffect
方法调用一个操作
createEffect
方法如下所示
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 },
}
))
))
)
);
我正在调用一个名为 getDataApi
的 API。一旦我从后端收到数据,设置 payod 和 type.Finally 正在调用 setData
并从响应中传递第一个值。
SetData 操作
export const setData = createAction(
'[Data] Set Selected',
props<{ selectedData: Data}>(),
);
错误
提前致谢。
你的代码怎么了?这显然是错误的部分:
map((data: Data[]) => ({
type: '[Data] Load Success',
payload: { data},
selectedData:data[0],
return setData(selectedData),
}
)),
更改为:
switchMap((data: Data[]) => setData({ selectedData: data[0] })),
在 angular 和 ngrx 商店概念中是新的(ngrx 和 angular 版本是 13)。
我正在尝试从 effects.ts 文件中的 createEffect
方法调用一个操作
createEffect
方法如下所示
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 },
}
))
))
)
);
我正在调用一个名为 getDataApi
的 API。一旦我从后端收到数据,设置 payod 和 type.Finally 正在调用 setData
并从响应中传递第一个值。
SetData 操作
export const setData = createAction(
'[Data] Set Selected',
props<{ selectedData: Data}>(),
);
错误
提前致谢。
你的代码怎么了?这显然是错误的部分:
map((data: Data[]) => ({
type: '[Data] Load Success',
payload: { data},
selectedData:data[0],
return setData(selectedData),
}
)),
更改为:
switchMap((data: Data[]) => setData({ selectedData: data[0] })),