【问题标题】:Ngrx Entity, how define actions and how properly name actions with effectsNgrx 实体,如何定义动作以及如何正确命名具有效果的动作
【发布时间】:2018-09-03 08:15:45
【问题描述】:

我使用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?

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

【问题讨论】:

    标签: angular ngrx ngrx-effects ngrx-entity


    【解决方案1】:

    正如您所描述的那样。

    在您的应用程序中,您将调度 Load 动作,您的效果将调用 API 并调度实体的 LoadSuccessLoadFailed 动作作为有效载荷。

    你也可以看看ngrx-data

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

    【讨论】:

      猜你喜欢
      • 2022-10-05
      • 1970-01-01
      • 2023-03-18
      • 2018-11-22
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多