文档声明它应该有效:
普通JavaScript对象或数组可以嵌套在Immutable.js集合中,updateIn()也可以更新这些值,通过应用更改创建这些值的新副本来对其进行不可变处理。
但是,以下代码不起作用:
import { Map } from 'immutable';
let m = new Map({a: {b: 5}})
m = m.updateIn(["a", "b"], x => x + 1);
console.log(m);
例外Error: invalid keyPath
。使用fromJS
代替new Map
的代码相同。
我是否误解了文档或为什么我的代码无效?
编辑:似乎此功能是4.0.0的新功能,默认情况下未安装。
答案 0 :(得分:0)
我正在使用Immutable 4.0.0-rc.9
嗯,它可以在控制台中使用。您可能需要考虑尝试导入import Immutable from 'immutable'
;可能是ES6
Map
和import { Map }
发生冲突。我不确定,如果不是这样,请纠正我。
let m = Immutable.Map({a: {b: 5}})
m = m.updateIn(["a", "b"], x => x + 1);
console.log(m);

<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.0.0-rc.9/immutable.js"></script>
&#13;