Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在reactjs中设置状态时如何使用三元运算_Javascript_Reactjs - Fatal编程技术网

Javascript 在reactjs中设置状态时如何使用三元运算

Javascript 在reactjs中设置状态时如何使用三元运算,javascript,reactjs,Javascript,Reactjs,只有当输入的值与文本框中的前一个值不同时,我才需要进行API调用。我试图在下面的方法中使用三元运算符,这会引发编译错误。谁能帮帮我吗 我已将处于状态的serialNumber设置为“serialNumber”: api调用完成后,我将设置在props中输入的serialnumber,如下所示。props.serialnumber将给出api调用所使用的serialnumber。现在,下次我只想在用户输入不同的值时调用API。在这种情况下,实际上不需要三元运算符: updatePartSerial

只有当输入的值与文本框中的前一个值不同时,我才需要进行API调用。我试图在下面的方法中使用三元运算符,这会引发编译错误。谁能帮帮我吗

我已将处于状态的serialNumber设置为“serialNumber”:


api调用完成后,我将设置在props中输入的serialnumber,如下所示。props.serialnumber将给出api调用所使用的serialnumber。现在,下次我只想在用户输入不同的值时调用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)
}

你可以通过这样做来实现这一点。 还为this.input.value添加了空/未定义检查

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

正在尝试添加类似于this.input.value==this.props.serialNumber的内容?null:this.setState({serialNumber:this.input.value},()=>{this.props.getPartSerialNumberDetails(this.props.serviceProviderId,this.props.serviceProviderLocationId,this.state.serialNumber)}
this.setState
不返回任何内容,在第一条注释@Dupocas中,只需使用一个简单的
(如果
)?您试图使用的三元运算符在哪里
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);}
        )}
}