仅当输入的值与文本框中先前的值不同时,我才必须进行 API 调用。我试图在下面的方法中使用三元运算符,该方法会引发编译错误。有人可以帮助我吗?
我已经将状态中的序列号设置为“serialNumber”:“”
updatePartSerialNumberDummy(){
this.setState(
{
serialNumber: this.input.value
}, () => {this.props.getPartSerialNumberDetails(this.props.serviceProviderId,this.props.serviceProviderLocationId, this.state.serialNumber);}
)}
一旦 api 调用完成,我将设置在 props 中输入的序列号,如 this.props.serialNumber 将给出 api 调用所使用的序列号。现在,下次我只想在用户输入不同的值时调用 API。
最佳答案
在这种情况下,您实际上不需要三元运算符:
updatePartSerialNumberDummy(){
if(this.input.value === this.props.serialNumber) return null
this.setState(
{
serialNumber: this.input.value
}, () => {this.props.getPartSerialNumberDetails(this.props.serviceProviderId,this.props.serviceProviderLocationId, this.state.serialNumber);}
)}
}
但是你可以这样实现:
updateWithternaryOperator(){
this.setState({
value : input !== 2 ? null : input
},() => input !== 2 ? null : doSomethingCaseValueIs2)
}
关于javascript - 如何在reactjs中设置状态时使用三元运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57365349/