逗号运算符无序列的意外用户



我正在学习反应,我正在尝试做一个回调函数来保持我的状态同步。我已经完成了以下代码,它确实有效并保持同步,但我得到了

警告"逗号运算符无序列的意外用户">

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()
)

基本上,你的exmamp是好的。 只需从回调:)中取下()因为这样你发送而不是函数,你发送的是计算函数的结果。

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 回调