如何在reactjs中设置状态时使用三元操作

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


我已经将状态中的 serialNumber 设置为 "serialNumber" : ""


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。


千万里不及你
浏览 179回答 2
2回答

三国纷争

在这种情况下,您实际上不需要三元运算符: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);}        )}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript