title: setState not updating state
body: <p>I am exporting a const from one file and importing it into another like so:</p>
  
  <p>constants.js</p>
  
  <pre><code>export const radio = {
    id: 0,
    name: 'station name',
    encodedName: 'stationName',
    url: 'http://www.some-station.io/',
    src: 'http://127.0.0.1:80/autodj',
  };
  </code></pre>
  
  <p>App.js</p>
  
  <pre><code>import React, { Component } from 'react';
  import RadioService from './services/radio';
  import { radio } from './constants';
  
  class App extends Component {
    constructor() {
      super();
      this.state = {
        stream: {
          np: undefined,
          src: undefined,
          playing: false
        }
      };
    }
  
    componentWillMount() {
      this.startStream();
    }
  
    startStream = () =&gt; this.setState({ stream: { np: radio.name, src: radio.src } });
  
    render() {
      return (
        &lt;div&gt;
          &lt;h4&gt;Hello World...&lt;/h4&gt;
        &lt;/div&gt;
      );
    }
  }
  
  export default App;
  </code></pre>
  
  <p>I'm expecting my initial state to be as set in the constructor, then on componentWillMount I'd like to set the state with the values from the constant file, before adding further logic around the component and stream.</p>
  
  <p>I'm finding however, my state is not being updated, if I console log after called setState, the state is still undefined and if I introduce a method that required that value from state, later in the execution stack, it is not set.</p>
  
  <p>example:</p>
  
  <pre><code>  startStream = () =&gt; {
      this.setState({ stream: { np: radio.name, src: radio.src } });
      this.exampleMethod();
    };
  
    exampleMethod = () =&gt; console.log(this.state);
  </code></pre>
  
  <p>This returns:</p>
  
  <pre><code>{stream: {…}}stream: {np: undefined, src: undefined, playing: false}
  </code></pre>
  
  <p>I can however set some values in the constructor, however trying to set further state is not applied</p>
  
  <p>example 2:</p>
  
  <pre><code>class App extends Component {
    constructor() {
      super();
      this.state = {
        stream: {
          np: radio.name,
          src: radio.src,
          playing: false
        }
      };
    }
  
    componentWillMount() {
      this.startStream();
    }
  
    startStream = () =&gt; {
      this.setState({ ...this.state, stream: { playing: true } });
      this.exampleMethod();
    };
  </code></pre>