在React.js中设置状态时如何使用三元运算

时间:2019-08-05 20:00:12

标签: javascript reactjs

仅当输入的值与文本框中的先前值不同时,才必须进行API调用。我试图在下面的方法中使用三元运算符,这会引发编译错误。有人可以帮我吗。

我已经将serialNumber设置为“ serialNumber”:“”

App

一旦api调用完成,我将设置在props中输入的序列号,例如this.props.serialNumber将提供api调用所使用的序列号。现在,下次我只想在用户输入其他值时调用API。

2 个答案:

答案 0 :(得分:1)

在这种情况下,您实际上不需要三元运算符:

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

答案 1 :(得分:0)

您可以通过执行以下操作来实现。 还为this.input.value添加了null / undefined检查

updatePartSerialNumberDummy(){
   if(this.input.value && (this.input.value !== this.props.serialNumber)){
        this.setState(
            {
                serialNumber: this.input.value
            }, () => {this.props.getPartSerialNumberDetails(this.props.serviceProviderId,this.props.serviceProviderLocationId, this.state.serialNumber);}
        )}
}