title: Warning: failed prop type in React error
body: <p>I'm getting this same error for the 7 of my propTypes below.
  I can't find what's causing this problem, but I know that propTypes is working because I have everything set up correctly.</p>
  
  <p>Here is my code and the error that showing in the console.</p>
  
  <blockquote>
    <p>Warning: Failed prop type: The prop <code>_id</code> is marked as required in
    <code>DealListItem</code>, but its value is <code>undefined</code>.
        in DealListItem (created by DealList)
        in DealList (created by Deal)
        in div (created by Deal)</p>
  </blockquote>
  
  <p><strong>DealListItem.js</strong></p>
  
  <pre><code>const DealListItem = (props) =&gt; {
    return (
      &lt;div className="item"&gt;
        &lt;h2&gt;{this.props.title}&lt;/h2&gt;
        &lt;p className="item__message"&gt;{this.props.shortUrl}&lt;/p&gt;
        &lt;p className="deal-item"&gt;Description:{this.props.description}&lt;/p&gt;
        &lt;p className="deal-item"&gt;Type: {this.props.category}&lt;/p&gt;
        &lt;p className="deal-item"&gt;Co. {this.props.location}&lt;/p&gt;
        &lt;p className="deal-item"&gt;€{this.props.price}&lt;/p&gt;
        &lt;p className="deal-item"&gt;{ moment(this.props.createdAt).startOf('lll').fromNow() }&lt;/p&gt;
        &lt;img className="deal-item" src="http://placehold.it/125x125"/&gt;
        &lt;button className="button-deal btn-success" onClick={() =&gt; {Meteor.call('links.determineVisibility', this.props._id, !this.props.visible);}}&gt;
          // If visible hide -&gt; Else -&gt; Show
          {this.props.visible ? 'Hide' : 'Show'}
        &lt;/button&gt;
      &lt;/div&gt;
    );
  };
  
  DealListItem.propTypes = {
    _id: React.PropTypes.string.isRequired,
    title: React.PropTypes.string.isRequired,
    description: React.PropTypes.string.isRequired,
    category: React.PropTypes.string.isRequired,
    location: React.PropTypes.string.isRequired,
    price: React.PropTypes.string.isRequired,
    visible: React.PropTypes.bool.isRequired
  };
  </code></pre>
  
  <p><strong>DealList.js</strong></p>
  
  <pre><code>import DealListItem from './DealListItem';
  import DealListEmpty from './DealListEmpty';
  
  export default class DealList extends React.Component {
    constructor(props) {
      super(props);
      this.state = {
        deals: []
      };
    }
  
    componentDidMount() {
  
      this.linksTracker = Tracker.autorun(() =&gt; {
        Meteor.subscribe('deals');
  
        const deals = Deals.find({
          // Get session variable 'displayVisible'
          visible: Session.get('displayVisible')
        }).fetch();
  
        // Set the state of deals
        this.setState({ deals });
      });
    }
  
    componentWillUnmount() {
      this.linksTracker.stop();
    }
  
    renderDealListItem() {
      if (this.state.deals.length === 0) {
        return (
          &lt;div className="item"&gt;
  
            &lt;p className="item__status-message"&gt;No Deals to show. Get adding!&lt;/p&gt;
  
          &lt;/div&gt;
        );
      }
  
      // Use map to get the deals
      return this.state.deals.map((deal) =&gt; {
  
        return &lt;DealListItem key={deal._id} deal={deal}/&gt;;
  
      });
    }
    render() {
      return (
        &lt;div&gt;
  
  
  
            {/* Render the documents inside the render function */}
            {this.renderDealListItem()}
  
  
  
        &lt;/div&gt;
      );
    }
  };
  </code></pre>
  
  <p>I'll update with more code if needed to debug. Thank you</p>