Ngrx Entity, как определить действия и как правильно назвать действия с эффектами
Я сгенерировал действия, используя схемы 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, которое фактически добавляет список пользователей для хранения объекта?
А может это должно выглядеть иначе?
1 ответ
Как именно вы это описываете.
В вашем приложении вы отправите действие Load, ваш эффект вызовет API и отправит действие LoadSuccess или LoadFailed с объектами в качестве полезной нагрузки.
Вы также можете взглянуть на ngrx-data
Стальной шаблон Zero Ngrx Вы больше никогда не сможете написать действие, редуктор, селектор, эффект или службу данных HTTP. Ngrx-data - это расширение ngrx, которое предлагает аккуратное введение в ngrx/redux без примера.