我有一个不可变对象:
let mutableObject = {
test:
{ test2: { a:1, b:2, c:3 } }
};
我需要使用setIn()函数在test2对象中设置一个值。但在这种情况下,我必须使用数组中的值动态设置它。
let keys = ['test', 'test2'];
我尝试设置这样的值:
let immutableObj = fromJS(mutableObject).setIn(keys, [1, 2]);
无效。
输出应为:
{
test: {
test2 : [1, 2]
}
}
答案 0 :(得分:2)
你的代码很好。如果需要输出,只需转换为常规JS对象即可。您可以使用.toJS()
方法。像这样:
let immutableObj = fromJS(mutableObject).setIn(keys, [1, 2]).toJS();