import React from 'react'; import Loader from '../components/loader'; export default function fetchData(url, options) { return (Component) => class fetchComponent extends React.Component { constructor(props) { super(props); this.state = { finished = false; data = null; } } componentDidMount() { fetch(url, options) .then(r => r.json()) .then(data => this.setState({ finished: true, data })) } render() { return (this.state.finished ? <Component {...props} data={this.state.data}> : <Loading/>); } } }