Есть 3 числовых поля ввода: a, b и c.
Когда пользователь редактирует "a" или "b", тогда "c" следует вычислять как a * b.
Когда редактируется "c"затем посмотрите, какое поле было отредактировано совсем недавно:
если «a», то «b» = c / a
, если «b», то «a» = c / b
Следующий рабочий код позволяетредактировать a, b и c.
Я не могу понять, как реализовать вычисление a или b, если редактируется c.
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", я добавил в конецof handleChange ()
if (name === 'a') {
setValues({ ...values, a: value, c: value * values.b });
}
if (name === 'b') {
setValues({ ...values, b: value, c: value * values.a });
}
, но я не знаю, как вычислить «a» или «b» при редактировании «c», потому что мне нужно решить, какое поле «a» или «b» необходиморассчитывается на основе последнего события редактирования между этими 2.