首页 > 解决方案 > reactjs中设置状态时如何使用三元运算

问题描述

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

我已经将状态中的序列号设置为“序列号”:“”

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

一旦完成 api 调用,我将设置在像 this.props.serialNumber 这样的道具中输入的序列号,这将给出 api 调用所使用的序列号。现在下次我只想在用户输入不同的值时调用 API。

标签: javascriptreactjs

解决方案


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

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

推荐阅读