1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
import React, { Component } from 'react';
import { parseString } from 'xml2js';
import data from './data';
class App extends Component {
state = {
parks: []
};
componentWillMount() {
let { parks } = this.state;
for (let key of data) {
this.fetchData(parks, key.name, key.url);
}
this.setState({ parks });
}
fetchData = (parks, name, url) => {
let free = '';
let park = {};
fetch(url)
.then(response => response.text())
.then(xml => {
parseString(xml, function(err, result) {
if (result) {
free = result.park.Free[0];
while (free[0] === '0') {
free = free.slice(1);
}
} else {
free = 'no info avaible';
}
});
park = {
name: name,
free: free
};
parks.push(park);
});
};
render() {
const { parks } = this.state;
const parkList = parks.map(({ name, free }) => <div>{name}</div>);
console.log(parks);
console.log(parksList);
return <div>{parksList}</div>;
}
}
export default App; |
Partager