【发布时间】:2019-11-06 03:42:49
【问题描述】:
有 3 个数字输入字段:a、b 和 c。
当用户编辑“a”或“b”时,“c”应计算为 a*b。
编辑“c”时,查看最近编辑的字段:
如果 "a" 那么 "b" = c/a
如果 "b" 那么 "a" = c/b
以下工作代码允许编辑 a、b 和 c。
如果编辑 c,我无法弄清楚如何实现计算 a 或 b。
import React, { useState } from 'react';
const Calc = () => {
const [values, setValues] = useState( { a: 3, b: 2, c: 6 });
const handleChange = (e) => {
const { name, value } = e.target;
setValues({ ...values, [name]: value });
};
return (
<div>
<div className="row">
<label htmlFor="a">a</label>
<input type="number" id="a" name="a" onChange={handleChange} value={values.a} />
</div>
<div className="row">
<label htmlFor="b"> b </label>
<input type="number" id="b" name="b" onChange={handleChange} value={values.b} />
</div>
<div className="row">
<label htmlFor="c"> c </label>
<input type="number" id="c" name="c" onChange={handleChange} value={values.c} />
</div>
</div>
);
};
为了计算“c”,我在handleChange()的末尾添加了乘法
if (name === 'a') {
setValues({ ...values, a: value, c: value * values.b });
}
if (name === 'b') {
setValues({ ...values, b: value, c: value * values.a });
}
但是我不知道在编辑“c”时如何计算“a”或“b”,因为我需要根据这两个之间的最后一个编辑事件来决定需要计算哪个字段“a”或“b” .
【问题讨论】:
-
抱歉不明白你的问题。你能给出一些示例吗?例如:当设置 c = 5 时给定 {a:1, b:2, c:3},然后 ....
标签: reactjs react-hooks