在 NGRX 库 ( https://ngrx.io/ ) 中,当创建一个包含数据的操作时,这些示例显示了一个payload
为包含此数据而提供的参数。有没有理由我不能只提供有效负载作为参数?我可以找到的文档和所有示例都使用 apayload
但没有真正解释原因。例如:
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)。有什么理由我不应该像后者那样做吗?
这也会使效果器和减速器变得更简单。