我想使用 immer.js 合并嵌套对象
合并两个嵌套对象总是很困难。
我想知道以下内容是否适用于任何库..
state = {
lv1_1: {
lv2_1: {
lv3_1: 'foo1',
lv3_2: 'foo2',
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
}
lv1_1 = {
lv2_1: {
lv3_1: 'bar'
}
}
将 lv1_1 与状态合并,我想要以下输出。
state = {
lv1_1: {
lv2_1: {
lv3_1: 'bar',
lv3_2: 'foo2',
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
}
我尝试了 immerse.js 但以下代码
draft.lv1_1 = {...draft.lv1_1, ...lv1_1}
似乎给出
state = {
lv1_1: {
lv2_1: {
lv3_1: 'bar'
}
}
}
最佳答案
I wonder if the following is possible with any library..
您可以尝试lodash.merge
:
const a = {
lv1_1: {
lv2_1: {
lv3_1: 'foo1',
lv3_2: 'foo2'
},
lv2_2: {
lv3_2: 'foo2'
}
},
lv1_2: {
lv2_1: 'foo'
}
};
const b = {
lv1_1: {
lv2_1: {
lv3_1: 'bar'
}
}
};
console.log(_.merge(a, b));
关于reactjs - immer.js 合并嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60797579/