Ngrx实体,如何定义动作以及如何正确地命名具有效果的动作

问题描述 投票:2回答:1

我使用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',
}

和reducer这样:

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个回答
1
投票

究竟你是如何描述它的。

在您的应用程序中,您将调度Load操作,您的效果将调用API并将实体作为有效负载调度LoadSuccess或LoadFailed操作。

你也可以看看ngrx-data

零Ngrx Boilerplate您可能永远不会再次编写动作,减速器,选择器,效果或HTTP数据服务。 Ngrx-data是一个ngrx扩展,它提供了ngrx / redux的简单介绍,没有样板。

© www.soinside.com 2019 - 2024. All rights reserved.