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