在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)的方式类似。我为什么不应该像后者那样做?
这将使效果和减少剂也变得更简单。
答案 0 :(得分:0)
您不必使用type
,这只是一个约定。
参见Let’s have a chat about Actions and Action Creators within NgRx
来自ngrx.io
接口具有单个属性
type
,以字符串表示。[Source] Event
属性用于描述将在您的应用程序中分派的操作。类型的值以payload
的形式出现,用于提供有关其作用类别以及操作从何处调度的上下文。您可以向操作添加属性,以为操作提供其他上下文或元数据。最常见的属性是{{1}},它会添加操作所需的所有关联数据。