Angular 如何在reducer中处理Map类型
正在进行ng2 typescript项目。 这应该是直截了当的。我需要在商店里放一张Angular 如何在reducer中处理Map类型,angular,typescript,ngrx,Angular,Typescript,Ngrx,正在进行ng2 typescript项目。 这应该是直截了当的。我需要在商店里放一张地图,但由于某种原因它不起作用: 我进行了以下调试: case relationActions.ActionTypes.SET_RELATIONSHIPS: { console.log('reducer'); console.log(action.payload); return Object.assign({}, state, { relationShips: action.payload
地图
,但由于某种原因它不起作用:
我进行了以下调试:
case relationActions.ActionTypes.SET_RELATIONSHIPS: {
console.log('reducer');
console.log(action.payload);
return Object.assign({}, state, {
relationShips: action.payload
});
}
日志显示了我期望的映射
,但redux开发工具显示:
relationShips(pin): null => {}
是因为Object.assign()
无法处理Map
?
解决方案是什么?纯Javascript映射是可变的,您不应该将其用作一种还原状态 如果你真的想使用一个映射结构,你应该看看(->) 如果您不想使用Immutable.js,您应该有这样的状态来模拟地图的内容:
{
[`yourId1`]: 'value 1',
[`yourId2`]: 'value 2',
// ...
}
并使用
对象操作它。分配不应该或不能?可以对象。分配处理地图?我不这么认为。这就是为什么不可变js可以变得方便的原因