在immutable.js setIn([])函数中动态设置路径

时间:2016-07-28 04:32:42

标签: javascript immutable.js

我有一个不可变对象:

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

1 个答案:

答案 0 :(得分:2)

你的代码很好。如果需要输出,只需转换为常规JS对象即可。您可以使用.toJS()方法。像这样:

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