我不确定我是否完全了解您的目标,但请尝试一下。
首先,您要使用响应设置状态。
因此,您必须在构造函数中设置状态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()中调用它,除非您绝对确保不再需要再次调用它。假设您将在此页面上发出多个请求,您将需要多次调用它。
问题编辑后:
@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:我正在从内存中键入此内容,因此可能存在语法错误或一些愚蠢的事情,因此请阅读错误(如果有)。
本文链接:https://www.f2er.com/3109618.html