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

IT技术 reactjs
2021-05-03 05:09:27

我正在学习react,我正在尝试做一个回调函数来保持我的状态同步。我已经完成了下面的代码,它可以工作并保持同步,但我得到了

警告“逗号运算符无序列的意外用户”

handleInputChange = (value) => {
    this.setState(prevState => ({ amount: prevState.amount = parseInt(value, 0) }, this.handleCalculation()));
}

任何帮助都会很棒。谢谢

2个回答

您正在尝试设置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 回调