我有一个物体看起来像这样:
categories : [
{
name: "General Information",
rows: [
{
information1 : "",
information2 : "",
}
]
}
]
我使用如下循环显示行内容:
{formData?.categories?.map(c => (
<div>
{c.name}
{c.rows.map((row) => (
<div>
<input value={field.information1} />
<textarea value={field.information2}></textarea>
<button onClick={() => addRow(c.name)}>Add Row here</button>
</div>
))}
</div>
))}
当我按下其中一个按钮(应该向行数组添加一行)时,formData状态会更新,但显示的数据不会更新.
function addRow(category) {
const updatedFormData = formData
for (const cat of updatedFormData.categories) {
if (cat.name === category) {
cat.rows.push({
information1 : "test",
information2 : "this is a test"
})
}
}
setFormData(updatedFormData)
}