【发布时间】:2015-09-29 14:59:55
【问题描述】:
如何使用 immutablejs 映射删除一个元素。这是我的代码。
const initialState = Map({
job: [
{text: 'a'},
{text: 'b'}
]
});
const newState = initialState.delete({job: [text: 'a']});
但这不起作用。尝试了不同的方法,但无法成功。
【问题讨论】:
-
({job: {text: 'a'}}) === ({job: {text: 'a'}}) // false。您必须使用对要删除的 那个 对象的引用,而不是具有相同结构和值的不同对象。 -
@Ginden 我以为这会由 immutable.js 自动完成,不是吗?
-
如您所见,事实并非如此。
-
使您对一些选项感到困惑-首先使用键删除整个第一个值,然后作用于该值(这破坏了不变性)jsfiddle.net/16xzhnaL/1
-
@LeonardoAlves 是的,我实际上在 Map 构造函数中使用 ES5 过滤器修改了小提琴。也许更接近你所追求的。 jsfiddle.net/16xzhnaL/2 最终即使它能够匹配值,值也将是整个数组,对吧?