[英]React - check if a object is in state variable
我有一个状态变量,它是一个对象(称为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.