我正忙于一个 REACT 项目,但遇到了一个问题。我有用户输入数据。我在一些数学公式中使用它,需要在一张表中显示所有结果。问题是,result2 依赖于 result1,result3 依赖于 result2 等等。
input data:
const [volume, setVolume] = useState(0);
const [price, setPrice] = useState(0);
const [fixedCosts, setFixedCosts] = useState(0);
结果:
const [revenue, setRevenue] = useState(volume * price);
const [netProfit, setNetProfit] = useState(revenue - fixedCosts);
职能:
function handleFormSubmit(event) {
event.preventDefault();
function handleRevenueChange() {
setRevenue(volume * price); // both values are from input
}
function handleNetProfitChange() {
setNetProfit(Math.round(revenue - fixedCosts)); // revenue here is result of the first calculations
}
}
我检索数据,我可以使用它并显示。这部分有效。我的问题:第一次提交时,我在第一个公式中计算“收入”,所以我改变了它的状态,但同时它的当前状态是 0。所以第二个公式什么也没给出。当我第二次按下提交时,bcz“收入”已经更新,我可以使用它并计算第二个公式。因此,如果我有五个功能,我需要在提交时按五次,bcz 每个值状态都会一一更新(它们相互依赖)。
- 如何首先计算所有内容,然后仅通过一个按钮提交显示所有数据。
- 更好的是,如果根本不按按钮有任何输入,如何使数据自动计算和显示?(想着onBlur,但不知道怎么用,还是先计算一下)
感谢您的任何帮助。