我正在尝试在页面中显示api调用的响应。我从后端得到的响应是对象形式的。为此,我编写了以下代码-
generateElement(k,v) {
return (
<div key={k} className=" detailsRow row">
<div className="col-xs-6 ins-label">{k}</div>
<div className="col-xs-6">{v}</div>
</div>
)
}
}
getDetails(myObj) {
console.log('My Obj' + myObj);
//delete myObj.someprop1;
//delete myObj.someprop2;
console.log(myObj);
const newData = Object.keys(myObj).reduce((result, currentKey) => {
if (typeof myObj[currentKey] === 'string' || myObj[currentKey] instanceof String) {
const elementToPush = this.generateElement(currentKey, myObj[currentKey]);
result.push(elementToPush);
}
else if(!myObj[currentKey]){
const nullElementToPush = this.generateElement(currentKey, "null");
result.push(nullElementToPush);
}
else {
const nested = this.getDetails(myObj[currentKey]);
result.push(...nested);
}
return result;
}, []);
console.log(newData);
return newData;
}
我想从前端删除对象的几个键,因此我使用了目前已经对其进行注释的delete方法。这里的问题是删除myObj.someprop1;。并删除myObj.someprop2;我可以通过delete方法删除键,但是由于我在上一个屏幕中使用someprop1值进行某些检查,因此当我尝试从详细信息屏幕返回时(例如,当someProp1被删除时)它给了我错误。只是该屏幕上的属性中的一个,并保留我尝试向后导航时的整个对象?