如何从获取响应更新对象数组
How can I update the array of objects from a fetch response
我根据其他问题尝试了很多东西,但我不知道该怎么做。
我的组件构造函数中有这个数组:
testDependeciesArr:[]
当用户点击我的 React 组件的按钮 "test dependencies" 时,我调用这个函数:
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 发出请求,它 returns 我是这样的:
{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?
这个table应该在我设置状态时更新:
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
你可以利用 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)
试试这个:
testDependencies() {
axios.get(process.env.REACT_APP_HOST + '/testDependencies')
.then(resp => {
this.setState(
{ testDependeciesArr: Object.values(resp)}
)
})
.catch(function (error) {
console.log(error)
})
}
我根据其他问题尝试了很多东西,但我不知道该怎么做。
我的组件构造函数中有这个数组:
testDependeciesArr:[]
当用户点击我的 React 组件的按钮 "test dependencies" 时,我调用这个函数:
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 发出请求,它 returns 我是这样的:
{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?
这个table应该在我设置状态时更新:
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
你可以利用 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)
试试这个:
testDependencies() {
axios.get(process.env.REACT_APP_HOST + '/testDependencies')
.then(resp => {
this.setState(
{ testDependeciesArr: Object.values(resp)}
)
})
.catch(function (error) {
console.log(error)
})
}