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

6
请看下面的代码:

考虑以下代码:

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

const mutated = person.deleteAll(['name', 'age']);

预期结果是mutated现在是一个新的Map实例,其中键nameage已被删除。然而,引发了异常:

Uncaught TypeError: person.deleteAll is not a function

检查可用的Immutable.Map原型方法时,没有deleteAllremoveAll方法。它们被移除了吗?
该方法在官方的ImmutableJS文档中列出,但不可用。在这种情况下,有什么本地的Immutable替代方法呢? 谢谢。
3个回答

5

看起来这个方法只在最新版本(ver. 4 RC1 & RC2)中添加了。我查看了源代码,发现它在 3.8.1 中没有找到。除非你想使用 4.0.0-rc.2,否则目前还没有其他方法可以使用该方法。


4

如前所述,deleteAll仅在发布候选版中存在。 您可以通过以下方式获得相同的结果...

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

-2

deleteIn, as its similar xxxIn methods, will delete the end entry by the path you provide. Your example would work had I had: const person = Immutable.Map({ name: { age: 39 } }); - kettanaito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接