在此示例中,ProjectCategory扩展了Immutable.Record
const ProjectCategoryRecord = Immutable.Record({
id: 0,
title: 'Default Title',
description: 'Default Description',
projects: []
});
class ProjectCategory extends ProjectCategoryRecord{
constructor(props) {
super(props);
}
}
我目前正在通过json对象数组创建这些对象:
let entityMap = OrderedMap();
entities.forEach((entity) => {
entityMap = entityMap.set(entity.id, new ProjectCategory(entity))
});
我认为有一种方法可以做到:
let entityMap = OrderedMap((entities) =>{
...
})
但是我无法使其工作....因为OrderedMap是不可变的,所以不可能吗?
答案 0 :(得分:0)
我认为这是一个很好的解决方案-但我不确定
let entityMap = OrderedMap(entities.map(function (object) {
return [object.id, new ProjectCategory(object)]
}));
答案 1 :(得分:0)
const map = OrderedMap(arr.reduce(
(acc, obj) => ({
...acc,
[obj.id]: new ProjectCategory(obj),
}), {}));
如果您仍然认为它不够干净, 使用extendable immutable并自定义您的构造函数。