title: React-redux connect()'s mapStateToProps being called multiple times on react-router navigation
body: <p>I have a simple router (started with <code>redux-router</code> and switched to <code>react-router</code> to eliminate variables).</p>
  
  <pre><code>&lt;Router history={history}&gt;
    &lt;Route component={Admin} path='/admin'&gt;
      &lt;Route component={Pages} path='pages'/&gt;
      &lt;Route component={Posts} path='posts'/&gt;
    &lt;/Route&gt;
  &lt;/Router&gt;
  </code></pre>
  
  <p>Admin component is basically just <code>{this.props.children}</code> with some nav; it is not a <code>connect</code>ed component.</p>
  
  <p>Pages component is a <code>connect</code>ed component with <code>mapStateToProps()</code> like so:</p>
  
  <pre><code>function mapStateToProps (state) {
    return {
      pages: state.entities.pages
    };
  }
  </code></pre>
  
  <p>Posts is even more interesting:</p>
  
  <pre><code>function mapStateToProps (state) {
    let posts = map(state.entities.posts, post =&gt; {
      return {
        ...post,
        author: findWhere(state.entities.users, {_id: post.author})
      };
    }
  
    return {
      posts
    };
  }
  </code></pre>
  
  <p>And then when I load the page or switch between Posts/Pages routes I get the following in my console.log().</p>
  
  <pre><code>// react-router navigate to /posts
  
  Admin render()
  posts: map state to props
  Posts render()
  posts: map state to props
  Posts render()
  posts: map state to props
  
  // react-router navigate to /pages
  
  Admin render()
  pages: map state to props
  Pages render()
  pages: map state to props
  </code></pre>
  
  <p>So my question is: why is <code>mapStateToProps</code> being called multiple times on route changes?</p>
  
  <p>Also, why does a simple <code>map</code> function in <code>mapStateToProps</code> cause it to be called a third time in the Posts container?</p>
  
  <p>I am using the basic <code>logger</code> and <code>crashReporter</code> middlewares from the Redux docs and it is not reporting any state changes or crashes. If the state isn't changing why are the components rendering multiple times?</p>