NGRX角度有效载荷或无有效载荷

时间:2019-04-05 13:12:02

标签: angular redux ngrx ngrx-store-4.0

在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)的需求),这与我看到其他redux实现框架(NGXS)的方式类似。我为什么不应该像后者那样做?

这将使效果和减少剂也变得更简单。

1 个答案:

答案 0 :(得分:0)

您不必使用type,这只是一个约定。 参见Let’s have a chat about Actions and Action Creators within NgRx

来自ngrx.io

  

接口具有单个属性type,以字符串表示。 [Source] Event属性用于描述将在您的应用程序中分派的操作。类型的值以payload的形式出现,用于提供有关其作用类别以及操作从何处调度的上下文。您可以向操作添加属性,以为操作提供其他上下文或元数据。最常见的属性是{{1}},它会添加操作所需的所有关联数据。