基于其他问题,我尝试了很多事情,但是我没有弄清楚该怎么做。
我的组件构造函数中有这个数组:
testDependeciesArr:[]
当用户单击我的React组件的按钮“测试依赖项”时,我将调用此函数:
testDependencies() {
axios.get(process.env.REACT_APP_HOST + '/testDependencies')
.then(resp => {
this.setState(
{ testDependeciesArr: how to update this Array }
)
})
.catch(function (error) {
console.log(error)
})
}
该函数向nodejs发出请求,并向我返回:
{0: {…}, 1: {…}, 2: {…}}
0:
responseTime: "21ms"
responseStatus: "OK"
1:
responseTime: "2739ms"
statusText: "OK"
2:
responseError: {message: "request to http:url failed, reason: connect ECONNREFUSED 100.100.100.100:80", type: "system", errno: "ECONNREFUSED", code: "ECONNREFUSED"}
responseTime: "10ms"
那么,如何使用从节点响应中获得的3个对象来更新数组testDependeciesArr?
设置状态后,应该更新此表:
API Response Time StatusDetail
API1 21ms OK
API2 2739ms OK
API3 21ms request to http:url failed, reason: connect ECONNREFUSED 100.100.100.100:80", type: "system", errno: "ECONNREFUSED", code: "ECONNREFUSED
答案 0 :(得分:3)
您可以利用Object.values()
:
const res = {
0: {
responseTime: "21ms",
responseStatus: "OK"
},
1: {
responseTime: "2739ms",
statusText: "OK"
},
2: {
responseError: {
message: "request to http:url failed, reason: connect ECONNREFUSED 100.100.100.100:80", type: "system",
errno: "ECONNREFUSED", code: "ECONNREFUSED"},
responseTime: "10ms"
}
};
console.log(Object.values(res));
因此,在您的代码中:
testDependeciesArr: Object.values(resp)
答案 1 :(得分:1)
尝试一下:
testDependencies() {
axios.get(process.env.REACT_APP_HOST + '/testDependencies')
.then(resp => {
this.setState(
{ testDependeciesArr: Object.values(resp)}
)
})
.catch(function (error) {
console.log(error)
})
}