繁体   English   中英

Immutable.js updateIn不适用于普通对象吗?

[英]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 Mapimport { 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM