【发布时间】:2020-03-02 03:36:25
【问题描述】:
我有一个输入字段,我想在其中输入一个数字;然后这个数字应该存储在指定键“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
}
]);
{Object.keys(marketEstimateDataBCAssets).map(function(key) {
return (
<Segment>
<div> {marketEstimateDataBCAssets[key].name}</div>
<div> {marketEstimateDataBCAssets[key].prevgroupinputrate}</div>
<div> {marketEstimateDataBCAssets[key].currgroupinputrate}</div>
<input
value={marketEstimateDataBCAssets[key].mktratedelta}
onChange={e =>
(marketEstimateDataBCAssets[key].mktratedelta = e.target.value)
}
/>
<div> {marketEstimateDataBCAssets[key].mktrateestimate}</div>
</Segment>
);
【问题讨论】:
-
请粘贴完整的组件代码
-
如果你想改变
marketEstimateDataBCAssets,你需要调用setmarketEstimateData而不是改变它。 -
另外
marketEstimateDataBCAssets是一个数组而不是一个对象。Object.keys(marketEstimateDataBCAssets)不应按预期工作。你会得到这样的数组["0", "1"] -
@GangadharGandi 我正在调用 setmarketEstimateData 但我仍然无法在输入字段中输入
-
@CliveCharles 直接使用地图。如
marketEstimateDataBCAssets.map(asset => (<div>{asset.name}</div>))
标签: javascript reactjs frontend