为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千万里不及你 2021-09-04 17:43:40
仅当输入的值与文本框中的先前值不同时,我才必须进行 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。
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

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


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)

}


查看完整回答
反对 回复 2021-09-04
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

你可以通过做这样的事情来实现这一点。还为 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);}

        )}

}


查看完整回答
反对 回复 2021-09-04
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信