我試圖在Reactjs中重寫我的舊項目。由於我是初學者,這是我的第一個應用程序,因此我需要一些幫助來了解以React方式執行此操作的最佳方式,以及如何改進自己和此演示項目。在React組件中顯示並行Ajax請求的結果
這裏是一個working demo它。
我想在完成其Ajax請求後立即顯示名稱,而不是等待所有人都在Promise中完成。
ListManager.js
import React, { Component } from 'react'
import List from './List'
export class ListManager extends Component {
constructor (props, context) {
super(props, context)
this.state = {finaldata: []}
}
componentWillMount() {
const id = [1, 2, 3, 4, 5]
this.APIres(id)
}
APIres (ids) {
Promise.all(ids.map(id => fetch('http://api.tvmaze.com/shows/' + id).then(resp => resp.json().then(data => data.name))
)).then(data => {
data.sort()
this.setState({finaldata: Object.assign(this.state.finaldata, data)})
})
}
render() {
return (
< div>
<h3>{this.props.title}< /h3>
<List data={this.state.finaldata} />
</div>
)
}
}
List.js
'use strict'
import React, { Component } from 'react'
const ListItem = ({ text }) => <li>{text}</li>
const List = ({ data }) => {
const listNodes = data.map((value, index) => <ListItem text={value} key={index}></ListItem>)
return <ul>{listNodes}</ul>
}
export default List
一些注意事項:ID陣列將像example.com/#/?id=1,2,3,4
URL查詢。我將爲此使用react-router。
實現你需要訂購相同的ID的訂單? –