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

Dynamically set the path in immutable.js setIn([]) function

本文关键字:函数 动态 设置 路径 js immutable setIn      更新时间:2023-09-26

我有一个不可变的对象:

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

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

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