Immutable.Map.deleteAll() 不是一个函数



请考虑以下代码:

const person = Immutable.Map({
    name: 'John',
    surname: 'Maverick',
    age: 39
});
const mutated = person.deleteAll(['name', 'age']);

预期结果是mutated现在是 Map 的新实例,其中键nameage删除。但是,会引发异常:

未捕获的类型错误:person.deleteAll 不是函数

在检查Immutable.Map原型的可用方法时,没有deleteAll方法,也没有removeAll方法。它们已被删除了吗?

该方法列在官方的 ImmutableJS 文档中,但它不可用。在这种情况下,什么是本机不可变替代方案?谢谢。

看起来它只被添加到最新版本 ( ver. 4 RC1 & RC2 (。我查看了src代码,但在3.8.1中找不到它。除非您想使用 4.0.0-rc.2 ,否则还没有其他方法可以使用该方法。

如前所述,deleteAll仅在候选版本中。 您可以使用...

const mutated = ['name', 'age'].reduce((map, key) => map.delete(key), person);
我认为

你应该使用deleteIn吗?

https://facebook.github.io/immutable-js/docs/#/Map/deleteIn

person.deleteIn(['name', 'age']);

最新更新