2

我使用ngrx原理图生成了动作,它看起来像这样:

export enum UserActionTypes {
    LoadUsers = '[User] Load Users',
    AddUser = '[User] Add User',
    UpsertUser = '[User] Upsert User',
    AddUsers = '[User] Add Users',
    UpsertUsers = '[User] Upsert Users',
    UpdateUser = '[User] Update User',
}

和这样的减速器:

case PricingActionTypes.AddPricing: {
    return adapter.addOne(action.payload.pricing, state);
}

case PricingActionTypes.UpsertPricing: {
    return adapter.upsertOne(action.payload.pricing, state);
}

case PricingActionTypes.AddPricings: {
    return adapter.addMany(action.payload.pricings, state);
}

我的问题是如何将其与效果结合起来并调用 REST API。

我应该生成如下操作:

LoadUsers - 哪个效果从 REST API 获取用户列表,如果该 api 调用具有成功状态,它会调度实际添加用户列表到存储对象的操作 LoadUsersSuccess?

或者它应该看起来不一样?

4

1 回答 1

1

正是你描述它的方式。

在您的应用程序中,您将分派一个Load操作,您的效果将调用 API 并分派一个LoadSuccessLoadFailed操作,并将实体作为有效负载。

你也可以看看ngrx-data

零 Ngrx 样板 你可能永远不会再编写动作、reducer、选择器、效果或 HTTP 数据服务。Ngrx-data 是一个 ngrx 扩展,它在没有样板的情况下提供了对 ngrx/redux 的温和介绍。

于 2018-09-03T09:36:53.860 回答