我有一个组件想用它来更新数据库中的“余额”。为此,我使用 axios.get 将图形拉到我的 componentDidMount 中:componentDidMount() { axios.get("/api/fetch/fetchEditDebt", { params: { id: this.props.match.params.id } }) .then((response) => { this.setState({ balance: response.data.balance, }) })}然后我有一个输入,它获取用户想要添加到余额中的金额:<form method="POST" onSubmit={this.onSubmit}> <input className="edit-balance-input" type="number" name="add" value={this.state.add} onChange={this.onChange} step="1" /> <button className="edit-balance-button" type="submit">Save</button></form>然后,我使用一个函数从状态中获取原始余额,并从输入状态中获取“添加”数字,并将它们加在一起:const calculateUpdatedBalance = () => { return parseInt(this.state.balance) + parseInt(this.state.add)}然后,更新后的数字将呈现在跨度内,以便用户可以看到新的余额:<div className="edit-balance-balance-container"> <p className="edit-balance-balance-paragraph">Updated balance: </p> <span className="edit-balance-updated">-£{calculateUpdatedBalance()}</span></div>这一切都很好,正如预期的那样 - 当我想将更新后的余额发布到我的数据库时,困难就来了。我尝试发布add状态,但毫不奇怪,只是将余额更新为用户输入的金额。calculateUpdatedBalance()那么如何访问我的函数生成的图形呢?我考虑过在函数中尝试setState(),但这会产生“状态更新太多”错误。有人对如何获取更新后的数字并将其发布到我的数据库有任何建议吗?
1 回答
万千封印
TA贡献1891条经验 获得超3个赞
如果您创建组件calculateUpdatedBalance()的成员方法Add,则可以从 和 调用render()它onSubmit():
calculateUpdatedBalance() {
return parseInt(this.state.balance) + parseInt(this.state.add)
}
onSubmit = async (e) => {
...
await axios.post("/api/edit/editDebtBalance", {
balance: this.calculateUpdatedBalance(),
...
};
render() {
return (
...
<span className="edit-balance-updated">-£{this.calculateUpdatedBalance()}</span>
...
}
添加回答
举报
0/150
提交
取消