title: componentWillReceiveProps is not called on redux props change
body: <p>My component is straight forward:</p>
  
  <pre><code>import React, {Component} from 'react';
  import {connect} from 'react-redux';
  import {bindActionCreators} from 'redux';
  
  import * as instanceActions from '../../../store/instances/instancesActions';
  
  class InstanceDetailsPage extends Component {
  
      componentWillReceiveProps(nextProps) {
          console.log('will receive props');
          if (nextProps.id !== this.props.id){
              this.updateInstanceDetails();
          }
      }
  
      updateInstanceDetails = () =&gt; {
          this.props.actions.loadInstance(this.props.instance);
      };
  
      render() {
          return (
              &lt;h1&gt;Instance - {this.props.instance.name}&lt;/h1&gt;
          );
      }
  }
  
  function getInstanceById(instances, instanceId) {
      const instance = instances.filter(instance =&gt; instance.id === instanceId);
      if (instance.length) return instance[0];
      return null;
  }
  
  function mapStateToProps(state, ownProps) {
      const instanceId = ownProps.match.params.id;
      let instance = {id: '', name: ''};
      if (instanceId &amp;&amp; state.instances.length &gt; 0) {
          instance = getInstanceById(state.instances, instanceId) || instance;
      }
      return {
          instance,
      };
  }
  
  function mapDispatchToProps(dispatch) {
      return {
          actions: bindActionCreators(instanceActions, dispatch)
      };
  }
  
  export default connect(mapStateToProps, mapDispatchToProps)(InstanceDetailsPage);
  </code></pre>
  
  <p>My reducer which I'm pretty sure I'm not mutating the state:</p>
  
  <pre><code>import * as types from '../actionTypes';
  import initialState from '../initialState';
  
  export default function instancesReducer(state = initialState.instances, action) {
      switch (action.type){
          case types.LOAD_INSTANCES_SUCCESS:
              return action.instances.slice(); // I probably don't event need the .slice() here, but just to be sure.
          default:
              return state;
      }
  }
  </code></pre>
  
  <p>I know for sure that the state change which triggers props change because I logged <code>this.props</code> on the render method, and the props changed couple of times!
  With that, the <code>componentWillReceiveProps</code> wasn't called even once.</p>
  
  <p>What can cause that?</p>