我希望获取一些数据,然后使用它来获取其他一些数据,第一个api返回一些新闻文章,我正在做一个for循环来访问描述并将其保存为{{ 1}},我希望然后使用该数组发出另一个获取请求,问题是我只能在第一个函数中访问array
,我的代码看起来像这样:
array
我可以在组件中使用makeRemoteRequest = () => {
const url = `https://url.com`;
fetch(url)
.then(res => res.json())
.then(res => {
maindata = res.articles
var array = []
for(let i in maindata){
array.push(maindata[i].description)
}
console.log(array) // Working
this.setState({
data: res.articles,
});
})
console.log(array) // Not working
console.log(this.state.data) // Not working
};
并在列表视图中呈现它。
第二功能:
this.state.data
我的最后一次尝试是将所有内容混合在一个功能中,因为它是所有的承诺,没有工作
fetch('url', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
'api_key': "81a354b",
'data': array
}),
})
答案 0 :(得分:0)
首先在获取范围之外定义变量。
let array = [];
然后在fetch中:
array.push()
答案 1 :(得分:0)
这是什么输出? (你可以在你的问题中添加格式化的输出吗?):
fetch(url)
.then(res => res.json())
.then(res => return res.articles.map(article => article.description) )
.then(res => fetch(otherUrl, { descriptions: res }))
//I assume that result needs to be parsed as json as well
.then(res => res.json())
.then(result => {
conole.log("got results:",results);
})
.catch(err =>
console.warn("something went wrong:",err);
)