【发布时间】:2021-12-16 12:40:23
【问题描述】:
我正在尝试计算输入值的总和(输入的数量动态变化)
这是返回输入数量的函数:
const renderINP = () => {
let td = [];
for (let i = 1; i <= 3; i++) {
td.push(<td key={i}><input className="example" type="text" defaultValue="0" id={i} /></td>);
}
return td;
};
这是我的组件返回
return (
<div>
<table>
<tbody>
<tr>
{renderINP()}
<td>total<input id="total" type="text" defaultValue={total} /></td>
</tr>
</tbody>
</table>
</div>
);
}
这个函数应该返回用户输入的值的总和:
const [total,setTotal] = useState(0);
const getSum = () => {
let totalOfInps=0;
for (let i = 1; i <= 3; i++){
let a=parseFloat(document.getElementById(i).value);
totalOfInps+=a;
}
setTotal(totalOfInps);
}
我正在尝试返回输入中所有输入值的总和,该输入具有 id="total" 但它什么也不返回,当我使用 console.log(totalOfInps) 它在控制台中什么也不显示,如何我可以得到所有输入值的总和吗?
【问题讨论】:
-
您能解释一下这个问题,或者是什么没有按您的预期工作吗?
-
@DeanJames 它应该返回输入中具有 id="total" 的所有输入值的总和,但它什么也不返回,而且当我写 console.log(totalOfInps) 时它什么也不显示控制台
-
你应该 1) 为每个输入使用 useState 钩子,2) 为每个输入注册一个 onChange 事件处理程序,3) 通过调用钩子的 setter 在事件处理程序中设置输入的当前值, 4) 计算总数
-
@AliBaykal 我如何为每个输入使用 useState 挂钩?输入的数量根据一个月的天数动态变化,在这个例子中,我尝试了 3 个输入,只是为了让我在输入值时更容易
-
@YassineElAissati 嗯,是的,这有点复杂。您可能应该使用一个带有数组的 useState 挂钩来将每个输入的值存储在其中。
标签: javascript reactjs react-hooks jsx