[英]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.