Reactjs 修改React承诺响应中的数据会对全局产生影响

Reactjs 修改React承诺响应中的数据会对全局产生影响,reactjs,Reactjs,我已经创建了一个代码沙盒,其中包含了问题的简化版本 我从提取中得到一些数据 我想要2份该数据的副本,1份我想用SHIFT修改 问题:任何更改都会更新我的初始数据对象 有人能告诉我这是怎么可能的吗?我怎样才能避免这种情况 正如@Yusufbek所建议的,我们需要为您要修改的数据制作一份深度拷贝。您可以执行以下操作: 导出函数FormatResponseProperty(旧数据){ //常数newData={ //…旧数据 // }; const newData=JSON.parse(JSON

我已经创建了一个代码沙盒,其中包含了问题的简化版本

我从提取中得到一些数据

我想要2份该数据的副本,1份我想用SHIFT修改

问题:任何更改都会更新我的初始数据对象

有人能告诉我这是怎么可能的吗?我怎样才能避免这种情况


正如@Yusufbek所建议的,我们需要为您要修改的数据制作一份深度拷贝。您可以执行以下操作:

导出函数FormatResponseProperty(旧数据){
//常数newData={
//…旧数据
// };
const newData=JSON.parse(JSON.stringify(oldData));
const obj={allocations:[]};
var theRemovedElement=“”;
var端口=[];
ports=Object.values(newData[“liquidity”][“columns”]);
ports.shift();
var dataArray=[“流动性”];
for(数据数组的常量索引){
for(newData[索引][“数据”]的常数i){
theRemovedElement=i.shift();
如果(索引==“分配”){
obj[索引][删除]=i;
}否则{
obj[theRemovedElement]=i;
}
}
}
返回obj;

}
您可能需要尝试深度复制,但我不是100%确定,请尝试此功能