【发布时间】:2019-05-08 21:52:45
【问题描述】:
我有一个组件可以显示来自特定 API 调用的最佳结果。我的问题是如何正确有效地进行多个 API 调用并显示它们。我目前正在开始两次呼吁顶级电视和顶级播出。
我意识到我的初始状态只包含一个空数组,我需要一个额外的用于我想要返回的每个特定结果,但我目前卡住了。我尝试使用 async await 来获得一个结果,但是在调用多个结果时我一直没有成功。
class HomePage extends Component {
state = {
topTv: []
}
componentDidMount() {
const api = 'https://api.jikan.moe/v3'
const urls = [
fetch(`${api}/top/anime/1/tv`),
fetch(`${api}/top/anime/1/airing`)
]
Promise.all(urls)
.then(res => Promise.all(res.map(r => r.json())))
.then(data => this.setState = ({
topTv: data
}))
.catch(err => console.log('There was an error:' + err))
}
render() {
return (
<HomeWrapper>
<h2>Top anime</h2>
<TopAnime>
{this.state.topTv.map((ani) => {
return (
<div key={ani.mal_id}>
<img src={ani.image_url} alt='anime poster' />
<h3>{ani.title}</h3>
</div>
)
}).splice(0, 6)}
</TopAnime>
</HomeWrapper>
)
}
}
【问题讨论】:
-
你为什么有
.splice(0, 6)? -
就是获取调用的前6个结果
标签: javascript reactjs