[英]Immutable.js updateIn does not work with plain objects?
文件指出应该可以运作:
普通的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的新增功能,默认情况下未安装。
我正在使用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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.