export default function App() {
const measurementData = {
id: 301,
name: "Topwear",
measurements: [
{ id: 1, name: "neck" },
{ id: 2, name: "shoulder" }
]
};
return (
<div className="App mt-5">
<h1>Update Measurement Data</h1>
{measurementData.measurements?.map((data) => {
return (
<div className="d-flex">
<label className="col-form-label">{data.name}</label>
<input type="number" name={data.name} className="form-control"/>
</div>
);
})}
</div>
);
}
基本上,我是通过对象进行Map的,我只想添加一个名为value的新属性,并保存从输入字段(value:20)在measurementData中对象的测量数组的末尾。
//示例:在输入字段中输入值后,对象应如下所示
{
id: 301,
name: "Topwear",
measurements: [
{ id: 1, name: "neck", value: 20},
{ id: 2, name: "shoulder", value: 40 }
]
}
1条答案
按热度按时间2w2cym1i1#
您可以通过为
measurements
创建一个状态来实现这一点。这允许React在用户在输入中键入内容时重新呈现UI。我将measurementData
代码移到组件外部,如果这是动态的,您可以简单地将其放回原处。当Map到
measurements
来渲染它们时,我们为输入提供一个value
属性,并传递当前测量值。如果还没有值,我们默认为0
。