我正在学习react,我正在尝试做一个回调函数来保持我的状态同步。我已经完成了下面的代码,它可以工作并保持同步,但我得到了
警告“逗号运算符无序列的意外用户”
handleInputChange = (value) => {
this.setState(prevState => ({ amount: prevState.amount = parseInt(value, 0) }, this.handleCalculation()));
}
任何帮助都会很棒。谢谢
我正在学习react,我正在尝试做一个回调函数来保持我的状态同步。我已经完成了下面的代码,它可以工作并保持同步,但我得到了
警告“逗号运算符无序列的意外用户”
handleInputChange = (value) => {
this.setState(prevState => ({ amount: prevState.amount = parseInt(value, 0) }, this.handleCalculation()));
}
任何帮助都会很棒。谢谢
您正在尝试设置amount
值。你可以简单地这样做,
this.setState({ amount: parseInt(value)}, () => this.handleCalculation())
另一种方式是,
this.setState(prevState => ({
...prevState,
amount: parseInt(value)
}), () => this.handleCalculation()
)
基本上,你的例子很好。只需()
从您的回调中取出:) 因为然后您发送而不是函数,而是发送计算函数的结果。
this.setState(()=> ({ amount: parseInt(value, 0) }), this.handleCalculation);
或者将其作为箭头函数发送以保持您的范围。
this.setState({ amount: parseInt(value)}, () => this.handleCalculation())
这是关于状态生命周期的一个很好的解释 https://reactjs.org/docs/state-and-lifecycle.html
这是一个如何在完成后使用回调的示例: 何时使用 React setState 回调