Megre一个API调用与另一个React.js Javascript调用的结果
我有一个API调用,它返回一个包含嵌套对象数组的对象 我想为Key3数组中的所有对象添加一个属性,并从另一个API调用中分别设置这些值,但我无法让它工作Megre一个API调用与另一个React.js Javascript调用的结果,javascript,reactjs,Javascript,Reactjs,我有一个API调用,它返回一个包含嵌套对象数组的对象 我想为Key3数组中的所有对象添加一个属性,并从另一个API调用中分别设置这些值,但我无法让它工作 var object = { key1: "string", key2: bool, key3: [ { key1: "Thing1", key2: value2, key3: value3 }, { key1: "Thing2", key2: value2, key3: value3 }
var object = {
key1: "string",
key2: bool,
key3: [
{ key1: "Thing1", key2: value2, key3: value3 },
{ key1: "Thing2", key2: value2, key3: value3 },
{ key1: "Thing3", key2: value2, key3: value3 },
{ key1: "Thing4", key2: value2, key3: value3 },
{ key1: "Thing5", key2: value2, key3: value3 }
]
}
var array = object.key3;
for (var i = 0; i < array.length; i++) {
axios.get(`https://api.callblahblablah${url[array[i].key1]}`)
.then(response => {
array.forEach(function(obj) { obj.key4 = response.data.result; });
//response.data.result is a float.
this.setState({data: array})
})
.catch(err => console.log(err));
}
}
var对象={
键1:“字符串”,
键2:布尔,
关键3:[
{key1:“Thing1”,key2:value2,key3:value3},
{key1:“Thing2”,key2:value2,key3:value3},
{key1:“Thing3”,key2:value2,key3:value3},
{key1:“Thing4”,key2:value2,key3:value3},
{key1:“Thing5”,key2:value2,key3:value3}
]
}
var数组=object.key3;
对于(var i=0;i{
forEach(函数(obj){obj.key4=response.data.result;});
//response.data.result是一个浮点数。
this.setState({data:array})
})
.catch(err=>console.log(err));
}
}
API调用返回一个与特定对象对应的特定值(float),我想匹配它们
此时,将Key4添加到数组ok中的每个对象,但其值对于每个对象都是相同的
我试图将每个api调用返回的正确值与其对应的对象相匹配。因此,第一个api调用添加返回到数组[0]的键值对,第二个api调用添加key4及其值数组[1],第三个api调用添加key4及其返回到数组[2]的值,依此类推
我知道这与forEach有关。.map()
在数组上添加属性,然后将全新数组设置为
this.setState(lastState => ({
myObj: { ...lastState.myObj, key3: brandNewArray }
}));
您是否可以显示您尝试的内容和不起作用的内容,或者代码中的限制在哪里(由于不可变)?是否要根据每个对象的“键”属性或索引更新它们?是的,您必须复制该数组。更新其中的对象,然后使用新修改的数组再次设置state。嗨,谢谢你的回复,我对我的问题进行了一些编辑以使其更清晰。嗨,谢谢你的回答,我对我的问题进行了一些编辑以使其更清晰。