Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Megre一个API调用与另一个React.js Javascript调用的结果_Javascript_Reactjs - Fatal编程技术网

Megre一个API调用与另一个React.js Javascript调用的结果

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 }

我有一个API调用,它返回一个包含嵌套对象数组的对象

我想为Key3数组中的所有对象添加一个属性,并从另一个API调用中分别设置这些值,但我无法让它工作

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。嗨,谢谢你的回复,我对我的问题进行了一些编辑以使其更清晰。嗨,谢谢你的回答,我对我的问题进行了一些编辑以使其更清晰。