在何处进行 API 调用以及如何构建操作



我最近开始从ngrx迁移到ngxs,并且有一个设计问题,即我应该在哪里进行一些调用。

在 NGRX 中,我会为每次与 API 的交互创建 3 个操作。像这样:

获取实体 - 指示已进行初始 api 调用GetEntitiesSuccess - 指示数据的成功返回GetEntitiesFail - 指示数据返回失败

我将创建一个效果来监视实际调用 API 并通过使用生成的有效负载调用成功/失败操作来处理响应的 GetEntities 操作。

在 NGXS 中,我是否在操作发生时从存储本身进行 api 调用,或者是否有其他 NGXS 对象应该用于处理这些 API 调用,然后以与在 ngrx 中相同的方式处理操作(通过为每个调用创建多个操作(?

我看到的大多数示例以及我如何使用它的方式都是从状态中的操作处理程序进行 API 调用,然后在 API 返回时立即修补状态。

然后,在

补丁调用之后,如果需要,您可以调度操作以指示成功/失败。像这样:

@Action(GetSomeData)
loadData({ patchState, dispatch}: StateContext<MyDataModel>, {payload}: GetSomeData) {
   return this.myDataService.get(payload.id)
   .pipe(
      tap((data) => {
        patchState({ data: data});
        // optionally dispatch here
        dispatch(new GetDataSuccess());
      })
   ); 
}  

此 q/a 也可能很有用 Ngxs - 从后端加载数据的操作/状态

最新更新