如何自动使用switch case语句和更新API?

时间:2018-01-12 21:28:01

标签: javascript react-native

我是React native的新手。

我试图显示总线时间到达6个站点,这意味着我必须输入6个API代码。

我实际上只实现了一个API代码,但如果我使用6个API代码,我可能不得不使用switch case语句,我不知道如何制作它......

另一个问题是总线时间不会自动更新。 例如,如果到达的公共汽车时间是9:26,在9:26之后,它没有改变,它仍然表明该公共汽车将在9:26到达,尽管已经过了9:26。

这是我的代码,

export default class App extends React.Component {   
 constructor(){
super()
this.state = {
  name: [],
  name1: [] ,
  API:"",
componentWillMount(){

return fetch('https://transportapi.com/v3/uk/bus/stop/01000053207/live.json?app_id=d7180b02&app_key=47b460aac35e55efa666a99f713cff28&group=route&nextbuses=yes')
.then((response) => response.json())
.then((responseJson) => {
for(var x in responseJson.departures){
this.setState({
state : this.state["name"].push(responseJson.departures[x][0]),
state : this.state["name1"].push(responseJson.departures[x][0]["line"],": ",responseJson.departures[x][0]["aimed_departure_time"]," ")

});
}

render() {


 return (

 <MapView.Marker
   coordinate={{
    latitude:77.232,
    longitude: -44.292,
   }}
   title={'A Station'}
   description={this.state.name1.toString().replace(/,/gi, "")}
   image={require('./bus.png')}
)

1 个答案:

答案 0 :(得分:0)

希望我明白你要做的事情。

我认为您不需要使用switch语句来更新每条总线的数据。考虑更改您的数据模型,使其成为您传递给API的busID的一个键:值对,并且该值是与该busID相关的数据对象。

const busAPIs = [
    bus1: 'https://transportapi.com/v3/uk/bus/stop/01000053207...',
    bus2: 'some other API',
    ...
]  

this.state = {
     buses: [];
}

for(bus in busAPIs) {
 return fetch(busAPIs[bus])
...
.then
...
this.setState({bus: responseJson.departures});