我想更新 setState 上的对象 key
名称。我有这个对象:
let obj = {
sponsorship: {
a: {
task: "x",
todo: "y"
},
b: {
task: "x1",
todo: "y2"
}
}
};
setForm(obj);
现在想要重命名对象键名称之一:
setForm({
...form,
sponsorship: {
...form.sponsorship,
[newName]: { ...form.sponsorship[oldName] }
}
});
我尝试了这个,但它会添加新对象而不是替换。也尝试过这个:
setForm({
...form,
sponsorship: {
[newName]: { ...form.sponsorship[oldName] }
}
});
但这将删除所有先前的对象。但我需要将 a
键重命名为 c
最佳答案
如果您不想删除某个属性,并且正在寻找替代方法来执行此操作,则可以过滤 sponsorship
属性并返回一个不带 oldValue< 的新对象
setForm({
...form,
sponsorship: {
...Object.fromEntries(
Object.entries(form.sponsorship)
.filter(([key]) => oldName !== key)
),
[newName]: { ...form.sponsorship[oldName] }
}
});
关于javascript - Reactjs/Javascript 更新对象键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74207951/