簡體   English   中英

在React.js中設置狀態時如何使用三元運算

[英]How to use ternary operation while setting state in reactjs

僅當輸入的值與文本框中的先前值不同時,才需要進行API調用。 我試圖在下面的方法中使用三元運算符,這會引發編譯錯誤。 有人可以幫我嗎。

我已經將serialNumber設置為“ serialNumber”:“”

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

並且一旦api調用完成,我將設置在props中輸入的序列號,例如this.props.serialNumber將提供api調用所使用的序列號。 現在,下一次我只想在用戶輸入其他值時調用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添加了null / undefined檢查

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM