假设我有一个这样的对象:
const document = {
items: [
{ notes: ['a', 'b'] },
{ notes: ['y', 'z'] },
]
}
我想使用Immutable JS在项目上设置notes数组。基本上是一成不变的,但却是一成不变的。
这是我正在尝试的:
const immutableDocument = Immutable.fromJs(document);
immutableDocument.setIn(['items[index]', 'notes'], [newNote, ...oldNotes]);
这是行不通的,而且我在文档中看不到任何有关通过不可变对象中的某个索引(或谓词)访问数组的任何内容。
我该怎么做?
更新:
基于the answer on this question,我也尝试了immutableDocument.setIn(['items', index, 'notes'], [newNote, ...oldNotes])
,但这似乎也不起作用。
答案 0 :(得分:0)
这有效:
const newDocument = Immutable.setIn(immutableDocument, ['items', index, 'notes'], [newNote, ...oldNotes]);
不能完全确定另一个人为什么不工作based on the docs,但是,嘿,我继续。