请找到下面的代码,该代码包含数组中的嵌套对象
我需要遍历第n个节点并将"头"更新为其他值,即更新为输入元素
我使用递归来更新值,但它不更新。
我可以使用lodash或其他方式遍历并使用react hooks 更改"标题"吗
需要使用钩子来更新值
有什么建议吗?
请参阅下面的片段
const jsondata= [
{
header: "Test-1",
y14: 10,
y15: 15,
y16: 20,
parents: [
{
// id: 1,
header: "Test-2",
y14: 5,
y15: 10,
y16: 20,
children: [
{
id: 1,
header: "Test-3",
y14: 5,
y15: 10,
y16: 20
},
{
id: 2,
header: "Test-4",
y14: 5,
y15: 10,
y16: 20,
children: [
{
id: 2,
header: "Test-5",
y14: 3,
y15: 2,
y16: 1
},
{
id: 2,
header: "Test-6",
y14: 4,
y15: 5,
y16: 6
}
]
}
]
},
{
id: 1,
header: "Test-7",
y14: 5,
y15: 10,
y16: 20
}
]
},
];
const [data, setData]=useState(jsondata);
const tempObj = {};
function iterate(obj: any) {
for (const k in obj) {
if (typeof obj[k] == 'object' && obj[k] !== null) {
iterate(obj[k]);
} else {
tempObj[k] = <input type="text" value={obj[k]} />;
setData([...data,tempObj]);
}
}
}
您可以通过这种方式遍历:
https://codesandbox.io/s/json-example-m3u4x
但我推荐洛达什去_用更少的代码赋值。
https://lodash.com/docs/4.17.15#assign
希望这能帮助