【发布时间】:2016-02-02 10:16:28
【问题描述】:
所以我有一组 immutable.js 事件对象。
Set 是 Calendar 对象上的一个属性:
const Calendar = new Record({
'events': new Set(), // set of Events
});
我正在使用 Redux,并触发操作以从 Calendar 中添加和删除事件:
如果您在适当的对象中传递事件并从我的 reducer 中的对象构造对象,则将事件添加到日历中可以正常工作:
case ADD_EVENT_TO_CURRENT_CALENDAR:
return state.updateIn(['events'], (events)=> events.add({
start: action.event.date,
end: action.event.date,
title: `${action.event.show.venue}`,
show: action.event.show,
boundActions: action.boundActions,
}));
事件的boundActions 之一是removeEventFromCurrentCalendar 操作。在当前事件上调用它会在 reducer 中触发以下内容:
case REMOVE_EVENT_FROM_CURRENT_CALENDAR:
return state.updateIn(['events'], (events)=> {
events.delete(action.event);
});
action.event等价于ADD_EVENT...指定形式的当前事件,即:
{
start,
end,
title,
show,
boundActions,
}
但是,它不是 exact 相同的对象,我猜这会导致.delete() 调用失败。
使用 immutable.js 从该集合中删除这个相似但不相同的对象的最佳方法是什么?
【问题讨论】:
标签: javascript redux immutable.js