Rendering API Data with a Component

var React = require('react');
var ReactDOM = require('react-dom');
var $ = require('jquery');

var Dispensary = React.createClass({
  render: function() {
    return (
      <article className="item">
        <h2>
          {this.props.name} in {this.props.city}
        </h2>
        <em>Phone:</em> {this.props.phone}
      </article>
    );
  }
});

var DispensaryList = React.createClass({
  getInitialState: function() {
    console.log('set initial state');
    return { data: [] };
  },
  componentDidMount: function() {
    console.log('component mounted');
    $.ajax({
      url: this.props.url,
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({data: data});
      }.bind(this),
      error: function(xhr, status, err) {
        console.error(this.props.url, status, err.toString());
      }.bind(this)
    });
  },
  render: function() {
    console.log(this.props);
    console.log(this.state.data);
    var dispensaryNodes = this.state.data.map(function(dispensary) {
      return (
        <Dispensary key={dispensary.id} name={dispensary.name} city={dispensary.city} phone={dispensary.phone} />
      );
    });
    console.log(dispensaryNodes);
    return (
      <div>{dispensaryNodes}</div>
    )
  }
});

ReactDOM.render(
  <DispensaryList url="http://illinoisdispensaries.space/api-v1" />,
  document.getElementById('chirps')
);

results matching ""

    No results matching ""