immutable.js - 如何在 immutable.js 列表中使用 setIn

标签 immutable.js

好的,我有一个对象列表,非常标准。

const list = Immutable.List([{type:'thang',data:{id:'pants'}}]);

现在我想把裤子换成短裤……所以我在想

list.setIn([0,'data','id'],'shorts');

错误:无效的 keyPath

这是怎么做到的?

尽管弄乱了一段时间,我什至无法做到这一点:/一旦我知道如何做到这一点,我想知道如何在某个位置添加新元素

list.setIn([0,'data','length'],'short');

将新的长度属性添加到列表中位置 0 的数据对象。

最佳答案

我的错。我在创建不可变结构时出错了。如果我改变

const list = Immutable.List([{type:'thang',data:{id:'pants'}}]);

const list = Immutable.fromJS([{type:'thang',data:{id:'pants'}}]);

那我可以

list.setIn([0,'data','id'],'shorts');

关于immutable.js - 如何在 immutable.js 列表中使用 setIn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37295732/

相关文章:

javascript - Chai/Mocha 不可变测试始终失败

reactjs - 当使用 redux 和 immutable-js 时 - 你会在选择器上调用 toJS() 吗?或者您在渲染函数中使用 .get ('prop' )吗?

list - 如何将 ImmutableJS 列表分成多个列表

javascript - Immutable.js getter 用于以对象字面量表示法调用函数

javascript - 迭代不可变的 JS 映射

typescript - 更新 ImmutableJS 记录的多个字段的推荐方法是什么?

Python 不可变类型 ids 和 is 语句

javascript - 更新 ImmutableJS 列表中的多个条目

javascript - 使用 immutable.js 操作 Redux 中嵌套数组中的数据

immutable.js - 不可变JS : Convert List to indexed Map