【发布时间】:2020-08-11 21:05:28
【问题描述】:
我正在从 PS4 游戏 API 获取数据,但它被分成 400 多个页面。我想从所有页面中获取数据,但我想出的解决方案效果不佳。它给了我一个错误'NSNull 类型的JSON 值无法转换为有效的URL'。另外,我认为 for 循环也不能很好地工作,当它在我的列表中显示结果时,它显示它遍历了所有页面。
此外,此 API 是动态的,因为新游戏不断发布。那么,如何在不每次手动更改最后一页码的情况下将数据更新到最新页面呢?我在这里查看了一些问题,但无法将其放入我的代码中
我的代码比较长,所以我只发布重要的部分:
componentDidMount() {
var i;
for (i = 0; i < 400; i++) {
fetch(`https://api.rawg.io/api/games?page=${i+1}&platforms=18`, {
"method": "GET",
"headers": {
"x-rapidapi-host": "rawg-video-games-database.p.rapidapi.com",
"x-rapidapi-key": "495a18eab9msh50938d62f12fc40p1a3b83jsnac8ffeb4469f"
}
})
.then(res => res.json())
.then(json => {
const { results: games } = json;
this.setState({ games });
//setting the data in the games state
});
}
}
API 也有一个项目,它给了我下一页的链接,我认为有一种方法可以使用“next”并从该 URL 获取数据
如果有人可以提供帮助,那就太棒了。提前谢谢你
【问题讨论】:
标签: javascript reactjs react-native react-native-flatlist