Javascript 如何通过数组循环并使用映射向项添加数字
我尝试在react中循环一个数组,并尝试使用我创建的“handleplus”函数向“mktratedelta”的值添加1(或任何其他值)。我还创建了一个按钮,将此函数称为“handleplus”。但每当尝试点击按钮时,字段中就会出现“NaN”值。 我如何解决这个问题,这是正确的方法吗Javascript 如何通过数组循环并使用映射向项添加数字,javascript,reactjs,frontend,Javascript,Reactjs,Frontend,我尝试在react中循环一个数组,并尝试使用我创建的“handleplus”函数向“mktratedelta”的值添加1(或任何其他值)。我还创建了一个按钮,将此函数称为“handleplus”。但每当尝试点击按钮时,字段中就会出现“NaN”值。 我如何解决这个问题,这是正确的方法吗 function TableExampleStriped() { const [marketEstimateDataBCAssets, setmarketEstimateData] = useState([
function TableExampleStriped() {
const [marketEstimateDataBCAssets, setmarketEstimateData] = useState([
{
name: "BcLombard",
prevgroupinputrate: 0.01,
currgroupinputrate: 12.0,
mktratedelta: 4.0,
mktrateestimate: 20.0
},
{
name: "BcOtherSecured",
prevgroupinputrate: 0.01,
currgroupinputrate: 17.0,
mktratedelta: 3.0,
mktrateestimate: 10.0
},
{
name: "BcUnsecured",
prevgroupinputrate: 0.01,
currgroupinputrate: 7.0,
mktratedelta: 2.0,
mktrateestimate: 10.0
}
]);
const handleChange = item => 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(2)
};
}
return el;
});
return setmarketEstimateData([...newArr]);
};
const handleplus = item => e => {
const newArr = marketEstimateDataBCAssets.map(el => {
if (el.name === item.name) {
return {
...el,
mktratedelta: parseFloat(e.target.value) + 1.0
};
}
return el;
});
return setmarketEstimateData([...newArr]);
};
<Table.Cell>
{marketEstimateDataBCAssets.map(item => {
if (item.name === "BcOtherSecured") {
return <button onClick={handleplus(item)} />;
}
})}
</Table.Cell>
<Table.Cell>
{marketEstimateDataBCAssets.map(item => {
if (item.name === "BcOtherSecured") {
return (
<input
value={item.mktratedelta}
onChange={handleChange(item)}
/>
);
}
})}
</Table.Cell>
函数表ExampleStriped(){
常量[MarketEstimateDataCassets,setmarketEstimateData]=useState([
{
姓名:“b伦巴第”,
PrevGroupInput:0.01,
当前组输入:12.0,
mktratedelta:4.0,
MktrateeEstimate:20.0
},
{
名称:“BcOtherSecured”,
PrevGroupInput:0.01,
当前组输入:17.0,
mktratedelta:3.0,
MktrateeEstimate:10.0
},
{
名称:“BCN”,
PrevGroupInput:0.01,
当前组输入:7.0,
mktratedelta:2.0,
MktrateeEstimate:10.0
}
]);
const handleChange=item=>e=>{
const newArr=marketestimatedatacassets.map(el=>{
如果(el.name==item.name){
返回{
…呃,
mktratedelta:parseFloat(即target.value),
Mktrate估计:(
parseFloat(e.target.value)+item.currGroupInput
).toFixed(2)
};
}
返回el;
});
返回setmarketEstimateData([…newArr]);
};
常量handleplus=项目=>e=>{
const newArr=marketestimatedatacassets.map(el=>{
如果(el.name==item.name){
返回{
…呃,
mktratedelta:parseFloat(e.target.value)+1.0
};
}
返回el;
});
返回setmarketEstimateData([…newArr]);
};
{marketestimatedatacassets.map(项=>{
如果(item.name==“BcOtherSecured”){
返回;
}
})}
{marketestimatedatacassets.map(项=>{
如果(item.name==“BcOtherSecured”){
返回(
);
}
})}
要在react的onClick事件中传递数据,需要使用箭头功能
如下
return <button onClick={(e) => this.handleplus(item)} />;
返回此.handleplus(item)}/>;
请参阅react文档以处理事件我在按钮上没有看到与输入标记类似的任何值,因此每当它尝试在按钮上检查e.target.value时,单击它将给出一个未定义的值,如果我们执行parseFloat(未定义),它将返回NaN。当您在onclick中传递项时,可以从中获取所需的值 我正在使用下一个