NGRX -使用rxjs从端点重新获取数据



我正在使用ngrx效果从API端点获取数据并添加到状态。有时,用户操作可能会使该数据无效,并且需要从数据库中重新获取。

当前行为
  1. 触发获取数据并添加到状态存储的操作。一个新的XHR请求被记录在网络中获取数据。
  2. 用户在前端执行操作,需要重新取回。
  3. NGRX动作GET_KITS被调度,动作被记录到DevTools。
  4. 没有新的XHR请求。未对商店进行更新。

期望的行为
  1. 从API获取最新数据的新请求。

影响
getUserKits$ = createEffect(
() =>
this.actions$.pipe(
ofType(UserActions.AccountKitActions.GET_KITS.type),
switchMap(() => this.kitService.getKits()
.pipe(
map(response => UserActions.AccountKitActions.GET_KITS_SUCCESS({kits: response.data.kits})),
catchError((err: GraphQLError) => {
return of(UserActions.AccountKitActions.GET_KITS_FAIL());
})
)
)
)
)

动作按如下方式分派:

this.store.dispatch(AccountKitActions.GET_KITS());

我唯一看到的是。type不需要在ofType上的动作上。虽然你说它第一次通过,这是令人惊讶的。

ofType(UserActions.AccountKitActions.GET_KITS),

在我的ngrx之旅的早期,我经常发现添加带有console.log参数的tap操作符有助于确定流是如何实际发生的。

最新更新