Bri*_*ark 35
你可以这样做:(见这个JSBin)
const myMap = Immutable.fromJS({
nested: {
someKey: ['hello', 'world'],
},
});
const myNewMap = myMap.updateIn(['nested', 'someKey'], arr => arr.push('bye'));
console.log(myNewMap.toJS());
// {
// nested: {
// someKey: ["hello", "world", "bye"]
// }
// }
Run Code Online (Sandbox Code Playgroud)
由于myMap是不可变的,每当您尝试设置/更新/删除其中的某些数据时,它将返回对新数据的引用.因此,您必须将其设置为变量才能访问它(在本例中myNewMap).
如果在key处引用的数组是一个普通的javascript数组 - 那么你实际上会改变该值 - 所以你的代码将按预期工作(即 - myMap将在'key'中包含一个mutable/mutated数组,其中newData被推入.)但是,这种方式违背了不变性的目的,因此我建议myMap中的键引用一个Immutable.List.在这种情况下你会想做:
var newMap = myMap.set('key', myMap.get('key').push(newData))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15816 次 |
| 最近记录: |