[英]How to add property to an object from an API using react hooks useState
[英]How to add 2 keys from useState using mapping React?
我想做的是在“mktrateestimate”中显示“currgroupinputrate”和“mktratedelta”的添加我想从小处开始,所以我尝试在“mktratedelta”输入字段中输入一些内容,然后这个输入应该显示在mktrateestimate中但是它没有在 mktratedelta 中显示输入。 如何解决这个问题以及正确的方法是什么?
const [marketEstimateDataBCAssets, setmarketEstimateData] = useState([
{
name: "Lombard",
prevgroupinputrate: 0.01,
currgroupinputrate: 0.02,
mktratedelta: 0.03,
mktrateestimate: 0.04
},
{
name: "Other Secured",
prevgroupinputrate: 0.01,
currgroupinputrate: 0.02,
mktratedelta: 0.033,
mktrateestimate: 0.04
},
{
name: "Unsecured",
prevgroupinputrate: 0.01,
currgroupinputrate: 0.02,
mktratedelta: 0.0333,
mktrateestimate: 0.04
}
]);
return (
{marketEstimateDataBCAssets.map((item, key) => {
return (
<Segment>
<div> {item.name}</div>
<div> {item.prevgroupinputrate}</div>
<div> {item.currgroupinputrate}</div>
<input
value={item.mktratedelta}
onChange={e => {
const newArr = marketEstimateDataBCAssets.map(el => {
if (el.name === item.name) {
return { ...el, mktratedelta: parseFloat(e.target.value) };
}
return el;
});
console.log(newArr);
return setmarketEstimateData([...newArr]);
}}
/>
<div> {marketEstimateDataBCAssets[key].mktrateestimate}</div>
</Segment>
);
})} ```
你应该试试这个代码。 这只是一个开始,您可以从那里继续自己。 您应该找到一种方法来管理您的受控input
。 有关更多信息,请阅读反应中的非受控组件和受控组件。 查看 javascript 中的parseFloat 。
return (
<>
{marketEstimateDataBCAssets.map((item, key) => (
<div key={item.name}>
{/* let's name is unique */}
<div> {item.name}</div>
<div> {item.prevgroupinputrate}</div>
<div> {item.currgroupinputrate}</div>
<input
value={item.mktratedelta}
onChange={e => {
const newArr = marketEstimateDataBCAssets.map(el => {
if (el.name === item.name) {
return {
...el,
mktratedelta: parseFloat(e.target.value),
mktrateestimate: (
parseFloat(e.target.value) + item.currgroupinputrate
).toFixed(4)
};
}
return el;
});
console.log(newArr);
return setmarketEstimateData([...newArr]);
}}
/>
<div> {item.mktrateestimate}</div>}
</div>
))}
</>
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.