【问题标题】:Immutable.js updateIn does not work with plain objects?Immutable.js updateIn 不适用于普通对象?
【发布时间】:2017-12-07 14:14:37
【问题描述】:

文档声明它应该可以工作:

普通的 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的新功能,默认没有安装。

【问题讨论】:

    标签: javascript immutable.js


    【解决方案1】:

    我正在使用不可变 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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 2015-12-12
      相关资源
      最近更新 更多