我不确定我是否完全理解你的目标,但让我们试试吧。
首先,您要设置响应的状态。
所以你必须在构造函数中设置一个状态response: {}。你这样做了吗?
如果是这样,太好了!
现在,当您使用 axios.get() 或 fetch() 获得响应时,您将响应设置为状态。
axios
.get(url)
.then(res => { this.setState({ response: res }); }) //sets JSON object to state
.catch(e => console.log(e)); //return a error to the console if it fails
(PS:如果使用react fetch()函数,在使用setState之前,首先需要使用.json();将响应转换为JSON)
但我不明白你的数组问题。
您想将 ReleaseDate 和 Version 的值附加到数组中吗?
还是直接替换它的数据?
也许您想要创建一个对象数组,其中每个对象都有一个版本和发布日期字段。或者甚至可以将整个响应附加到这个数组(有点像保留以前响应的历史记录)并直接访问版本和日期字段。
你能澄清一下吗?
另外,只是一个提示:
您询问是否应该在 componentDidMount 或其他函数中进行迭代。我建议您创建一个类似 readResponse 的函数并在 componentDidMount() 中调用它,除非您绝对确定不需要再次调用它。假设您将在此页面上提出超过 1 个请求,您需要多次调用它。
问题编辑后:
@VarnikaChaturvedi 抱歉回复晚了。我想我理解你的问题。
这是我们可以做的:
让我们使用我之前提到的相同代码,但略有不同:
axios
.get(url)
.then(res => {
this.setState({ response: res.data });
myArray.push({
"Version": res.data.get("Version"),
"Release date": res.data.get("Release date")
});
})
.catch(e => console.log(e));
// what is supposed to happen is add a object containing version
// and release date to a already defined array named myArray
PS:我是凭记忆输入的,所以可能有语法错误或一些愚蠢的东西,所以如果有错误请阅读。