0
我正在使用ngrx存储与不可变来处理我的角2应用程序中的数据。我有一个reducer将数据从一个成功的API调用转换成不可变的商店的id到对象的映射:sessions: Map<number, ISession>
。要从本地阵列ISession[]
转换成action.payload
我执行foreach循环,在withMutations拨打:For循环填充不可变映射从零索引零数据点
case SessionsActions.LOAD_SESSIONS_SUCCESS:
return state.withMutations(map => {
map.set('loading', false);
action.payload.forEach((session: ISession) => {
console.log("Setting ",session);
map.setIn(['sessions', session.id], session);
});
}) as ISessions;
我得到预期的控制台输出,四个项目:
Setting Object {id: 6, payslip: null, invlice: null, paidByClient: false, completed: false…}
Setting Object {id: 8, payslip: null, invlice: 1, paidByClient: true, completed: false…}
Setting Object {id: 9, payslip: 1, invlice: 1, paidByClient: true, completed: false…}
Setting Object {id: 7, payslip: null, invlice: null, paidByClient: false, completed: false…}
但店内充满与10个项目,它的填充的ID从0用null直到最大(9)其中的数据本身被存储:
任何想法为什么会发生这种行为?