getInitialProps と react-redux の connect で渡す props は後者優先

以下では、getInitialPropsfoo: 1という値で返しているので、this.props.fooには1が入ってきます。が、以下のようにconnectでバインド同じプロパティに対してバインドしてしまうとconnectで渡したmapStateToPropsの値で上書きされてしまいfoo: 9になってしまいます。

class FooBase extends React.Component {
  static getInitialProps() {
    return {
      foo: 1
    }
  }

  render() {
    console.log(this.props.foo)
    // output: 9

    return <div>foo</div>
  }
}

connect(() => ({foo: 9})(FooBase)

少し考えれば当たり前な気もしますが、少しハマりました。ステート構造を見直すなどするといいかもしれません。