NGRX угловой полезной нагрузки или нет полезной нагрузки - PullRequest
1 голос
/ 05 апреля 2019

В библиотеке NGRX (https://ngrx.io/), при создании действия, включающего данные, в примерах показан аргумент payload, содержащий эти данные. Есть ли причина, по которой я не могу просто указать полезную нагрузку в качестве параметров?документация и все примеры, которые я могу найти, используют payload, но нет реального объяснения, почему. Например:

export class CreateEmployeeScheduleError implements Action {
readonly type = CREATE_EMPLOYEE_SCHEDULE_ERROR;
constructor(public payload: {
        error: string,
        requests: ScheduleCreateRequest[],
        requestsRemaining: number
}) {}
}

может быть записано как:

export class CreateEmployeeScheduleError implements Action {
readonly type = CREATE_EMPLOYEE_SCHEDULE_ERROR;
constructor(public error: string,
        public requests: ScheduleCreateRequest[],
        public requestsRemaining: number) {}
}

Это исключаетнеобходимо получить action.payload, а также необходимость вспомогательной функции (map(toPayload)) и аналогично тому, как я видел другие структуры реализации редуксов (NGXS). Есть ли причина, по которой я не должен делать это какпоследний?

Это изменит эффекты и уменьшители, чтобы быть более простым.

1 Ответ

0 голосов
/ 05 апреля 2019

Вам не нужно использовать payload, это просто соглашение.См. Давайте поговорим о действиях и создателях действий в NgRx

From ngrx.io

Интерфейс имеет одно свойство,type, представленный в виде строки.Свойство type предназначено для описания действия, которое будет отправлено в вашем приложении.Значение типа имеет вид [Source] Event и используется для предоставления контекста того, к какой категории действия он относится и откуда было отправлено действие.Вы добавляете свойства к действию, чтобы предоставить дополнительный контекст или метаданные для действия.Наиболее распространенным свойством является payload, которое добавляет все связанные данные, необходимые для действия.

...