title: React setState can only update a mounted or mounting component
body: <p>I am getting the following warning </p>
  
  <blockquote>
    <p>"Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the ContactPage component."</p>
  </blockquote>
  
  <p>When I initially go to the contact page the firs time it is fine. Then if I navigate off the page and go back the warning is thrown. </p>
  
  <p>Contact page component : </p>
  
  <pre><code>import React, { Component, PropTypes } from 'react';
  import AppStore from '../../stores/AppStore';
  import AppActions from '../../actions/AppActions';
  import DataContent from './DataContent';
  
  const title = 'Contact Us';
  
  
  class ContactPage extends Component {
  
      constructor(props) {
          super(props);
          this.state = AppStore.getState();
          AppActions.getData();
      }
  
    static contextTypes = {
      onSetTitle: PropTypes.func.isRequired,
    };
  
    componentWillMount() {
      this.context.onSetTitle(title);
      AppStore.listen(this.onChange.bind(this));
  }
  
  componentWillUnmount() {
      AppStore.unlisten(this.onChange.bind(this));
  }
  
  onChange(state) {
      this.setState(state);
  }
  
  renderData() {
      return this.state.data.map((data) =&gt; {
          return (
              &lt;DataContent key={data.id} data={data} /&gt;
          )
      })
  }
  
    render() {
      return (
        &lt;div className={s.root}&gt;
          &lt;div className={s.container}&gt;
            &lt;h1&gt;{title}&lt;/h1&gt;
            &lt;div&gt;
                { this.renderData() }
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      );
  }
  
  }
  
  export default ContactPage;
  </code></pre>
  
  <p>When I put debuggers in, on load of contact page it hits componentWillMount(). When I leave the contact page it hits componentWillUnmount(). When I navigate back to the page it hits componentWillMount() again and then throws the error when it hits the onChange(state) function.</p>