【发布时间】:2018-09-09 21:48:11
【问题描述】:
所以我使用 ngrx 来管理我的应用程序中的状态。我尝试添加一个应该如下所示的新属性(选定的班次):
state: {
shifts: {
selectedShifts: [
[employeeId]: [
[shiftId]: shift
]
]
}
}
目前,我的状态是这样的:
state: {
selectedShifts: {
[employeeId]: {
[shiftId]: shift
}
}
}
如您所见,我的“选定班次”是一个属性,而不是一个数组 - 这使得添加/删除/查询状态变得困难。
如何将状态组合成我想要的样子?
这是我在减速器中尝试的:
return {
...state,
selectedShifts: {
...state.selectedShifts,
[action.payload.employeeId]: {
...state.selectedShifts[action.payload.employeeId],
[action.payload.shiftId]: action.payload[shift.shiftId]
}
}
};
现在,当我尝试以我想要的方式返回状态时,结果如下:
state: {
selectedShifts: {
[action.payload.employeeId]:
[0]: {[action.payload.shiftId]: { shift }}
}
}
我在这里缺少什么?当我尝试替换应为 [] 的 {} 项时,出现此错误:“,”预期。
哦,是的,我希望数组的索引是特定班次的 id 而不是 [0]、[1]...
这可能吗? 将索引从数字更改为实际班次的 id 会不会是个坏主意?
【问题讨论】:
标签: arrays typescript ngrx ngrx-store