繁体   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