我有一个不可变的对象:
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();
关于javascript - 在immutable.js setIn([]) 函数中动态设置路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38627151/