我正在尝试使用Axios提取带有特定标签的15篇文章。但是,在一页上只有10个带有不同标记的结果,因此,我必须按照以下示例映射多个页面中的数据:
How to fetch data over multiple pages?
到目前为止,这是我的代码……显然,它不起作用。我相信错误是最后的getAllData(urls),因为在chrome开发工具中我遇到了一个错误:
flutter install
返回码
npm install
非常感谢您的帮助,我已经坚持了一段时间。谢谢
答案 0 :(得分:1)
Promise.all需要一个Promise数组,而您的fetchData函数需要返回一个Promise。
const fetchData = (url) => {
return axios //<-------- make sure to add return here
.get(url)
.then((res) => {
return {
data: res.data,
};
})
.catch((err) => {
console.log(err);
});
};
答案 1 :(得分:1)
您需要在fetchData
中返回一个promise,然后在调用getAllData()以获取文章时遍历结果
const fetchData = url => {
return axios
.get(url)
.then(res => {
return {
data: res.data
};
})
.catch(err => {
console.log(err);
});
};
//this is not working console.log(res) undefined ??
getAllData(urls)
.then(res => {
console.log(res);
let articles = [];
for (let rs in res) {
articles = [...articles, ...res[rs].data.response.results];
}
// console.log("++ articles: ", articles);
this.setState({
articles: articles
});
})
.catch(e => {
console.log(e);
});