old_contents: import React, { Component } from 'react';
  import { router as routerPropTypes } from './propTypes';
  
  
  export default () => (Target) => {
  
    return class extends Component { // eslint-disable-line react/prefer-stateless-function
      static displayName = `connectRouter(${Target.displayName || Target.name})`;
  
      static contextTypes = {
        router: routerPropTypes.isRequired
      };
  
      componentDidMount () {
        const { router } = this.context;
  
        this._offRouter = router.onStateChange(() => {
          this.forceUpdate();
        });
      }
  
      componentWillUnmount () {
        this._offRouter();
      }
  
      render () {
        return <Target {...this.props} />;
      }
    };
  };
  
new_contents: import React, { Component } from 'react';
  import { router as routerPropTypes } from './propTypes';
  
  
  export default () => (Target) => {
  
    return class extends Component { // eslint-disable-line react/prefer-stateless-function
      static displayName = `connectRouter(${Target.displayName || Target.name})`;
  
      static contextTypes = {
        router: routerPropTypes.isRequired
      };
  
      componentWillMount () {
        const { router } = this.context;
  
        this._offRouter = router.onStateChange(() => {
          this.forceUpdate();
        });
      }
  
      componentWillUnmount () {
        this._offRouter();
      }
  
      render () {
        return <Target {...this.props} />;
      }
    };
  };
  
subject: change moment of attach listeners of forceUpdate