2016-07-28 6 views
0

我有一个不可变的对象:动态地设置在immutable.js路径SETIN([])函数

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] 
    } 
} 

回答

2

你的代码是好的。如果你需要这个输出,你只需要转换成一个普通的JS对象。你可以使用.toJS()这个方法。像这样:

let immutableObj = fromJS(mutableObject).setIn(keys, [1, 2]).toJS();