不可变 JS:在对象中的数组中的对象中设置 属性
Immutable JS: Set property in object within array within object
假设我有这样一个对象:
const document = {
items: [
{ notes: ['a', 'b'] },
{ notes: ['y', 'z'] },
]
}
我想使用 Immutable JS 在项目上设置注释数组。基本上做一个 unshift,但不可变。
这是我正在尝试的:
const immutableDocument = Immutable.fromJs(document);
immutableDocument.setIn(['items[index]', 'notes'], [newNote, ...oldNotes]);
它不起作用,而且我在文档中没有看到任何有关通过不可变对象中的特定索引(或谓词)访问数组的内容。
我该如何完成?
更新:
基于,我也尝试了immutableDocument.setIn(['items', index, 'notes'], [newNote, ...oldNotes])
,但似乎也不行。
这有效:
const newDocument = Immutable.setIn(immutableDocument, ['items', index, 'notes'], [newNote, ...oldNotes]);
不完全确定为什么另一个不起作用 based on the docs,但是嘿,我要继续前进了。
假设我有这样一个对象:
const document = {
items: [
{ notes: ['a', 'b'] },
{ notes: ['y', 'z'] },
]
}
我想使用 Immutable JS 在项目上设置注释数组。基本上做一个 unshift,但不可变。
这是我正在尝试的:
const immutableDocument = Immutable.fromJs(document);
immutableDocument.setIn(['items[index]', 'notes'], [newNote, ...oldNotes]);
它不起作用,而且我在文档中没有看到任何有关通过不可变对象中的特定索引(或谓词)访问数组的内容。
我该如何完成?
更新:
基于immutableDocument.setIn(['items', index, 'notes'], [newNote, ...oldNotes])
,但似乎也不行。
这有效:
const newDocument = Immutable.setIn(immutableDocument, ['items', index, 'notes'], [newNote, ...oldNotes]);
不完全确定为什么另一个不起作用 based on the docs,但是嘿,我要继续前进了。