簡體   English   中英

反應-檢查對象是否處於狀態變量

[英]React - check if a object is in state variable

我有一個狀態變量,它是一個對象(稱為testObject)。 我在該狀態變量中存儲了幾個對象。 我正在尋找一種檢查對象的狀態變量中是否存在的方法,如果為true,則將其刪除。

總結一下困境:

  • 檢查對象是否已經在testObject中
  • 如果為true =>刪除該對象
  • 如果為false =>將對象添加到testObject

    類Connector擴展Component {

     constructor(props) { super(props); this.state=({ testObject: {}, }); console.log(this.props); } 

    }

如何切換狀態?

this.setState(prevState => ({
  testObject: {
    ...prevState.testObject,
    someProperty: !prevState.testObject.someProperty
  }
}))

您可以通過以下方式進行檢查:

if (this.state.testObject.hasOwnProperty(property_name))
  delete this.state.testObject.property_name
else {
  var testObject = this.state.testObject
  testObject[property_name] = some_value
  this.setState({testObject: testObject})
}

如果存在,此代碼將從狀態中刪除testObject鍵。

假設obj是您要刪除/添加的對象。

let newState = this.state.testObject

if (this.state.testObject.obj) {
    delete newState["obj"]
} else {
    newObject["obj"] = "value"
}

this.setState({ testObject: newState })

如果obj存在於testObject中,則它將刪除它,否則它將obj插入testObject中。

假設有問題的對象在testObject中,鍵為obj,傳入的var為newTestObj。

然后我們將檢查

if(this.state.testObject && this.state.testObject.obj) {
   let tempObj = this.state.testObject;
   delete tempObj.obj;
   this.setState({
      testObject: tempObj
   })
}else {
  this.setState({
      testObject: {...testObject, obj: newTestObj.obj}
   })
}

使用if語句檢查對象是否存在。

if(this.state.objectName)
  delete this.state.objectName

暫無
暫無

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

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