仅在特定屏幕上删除一些对象属性,并保留该对象在其他屏幕上的状态

时间:2018-08-15 11:18:27

标签: javascript

我正在尝试在页面中显示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被删除时)它给了我错误。只是该屏幕上的属性中的一个,并保留我尝试向后导航时的整个对象?

0 个答案:

没有答案