使用ng2打字稿项目。
这应该是直截了当的。我需要在商店中放一个Map<string, Relationship>
,但由于某种原因它不起作用:
我做了以下调试:
case relationActions.ActionTypes.SET_RELATIONSHIPS: {
console.log('reducer');
console.log(action.payload);
return Object.assign({}, state, {
relationShips: action.payload
});
}
日志显示我期待的Map
,但redux dev工具显示:
relationShips(pin): null => {}
是因为Object.assign()
无法处理Map
吗?
解决方案是什么?
答案 0 :(得分:0)
Pure Javascript Map是可变的,你不应该将它用作reducer的状态。
如果你真的想使用地图结构,你应该看看Immutable.js( - &gt; Map)。
如果您不想使用Immutable.js,您应该有类似的状态来模拟地图的内容:
{
[`yourId1`]: 'value 1',
[`yourId2`]: 'value 2',
// ...
}
并使用Object.assign
进行操作。