function observer (componentClass) {
  if (typeof componentClass === 'function' &&
    (!componentClass.prototype || !componentClass.prototype.render) && !componentClass.isReactClass && !React.Component.isPrototypeOf(componentClass)
  ) {
    var ObserverComponent = (function (superclass) {
      function ObserverComponent () {
        superclass.apply(this, arguments);
      }

      if ( superclass ) ObserverComponent.__proto__ = superclass;
      ObserverComponent.prototype = Object.create( superclass && superclass.prototype );
      ObserverComponent.prototype.constructor = ObserverComponent;

      ObserverComponent.prototype.render = function render () {
        return componentClass.call(this, this.props, this.context)
      };

      return ObserverComponent;
    }(React.Component));
    ObserverComponent.displayName = componentClass.displayName || componentClass.name;
    ObserverComponent.contextTypes = componentClass.contextTypes;
    ObserverComponent.propTypes = componentClass.propTypes;
    ObserverComponent.defaultProps = componentClass.defaultProps;
    return observer(ObserverComponent)
  }

  if (!componentClass) {
    throw new Error("Please pass a valid component to 'observer'")
  }

  var target = componentClass.prototype || componentClass;
  mixinLifecycleEvents(target);
  return componentClass
}
function observer (componentClass) {
  if (typeof componentClass === 'function' &&
    (!componentClass.prototype || !componentClass.prototype.render) && !componentClass.isReactClass && !React.Component.isPrototypeOf(componentClass)
  ) {
    var ObserverComponent = (function (superclass) {
      function ObserverComponent () {
        superclass.apply(this, arguments);
      }

      if ( superclass ) ObserverComponent.__proto__ = superclass;
      ObserverComponent.prototype = Object.create( superclass && superclass.prototype );
      ObserverComponent.prototype.constructor = ObserverComponent;

      ObserverComponent.prototype.render = function render () {
        return componentClass.call(this, this.props, this.context)
      };

      return ObserverComponent;
    }(React.Component));
    ObserverComponent.displayName = componentClass.displayName || componentClass.name;
    ObserverComponent.contextTypes = componentClass.contextTypes;
    ObserverComponent.propTypes = componentClass.propTypes;
    ObserverComponent.defaultProps = componentClass.defaultProps;
    return observer(ObserverComponent)
  }

  if (!componentClass) {
    throw new Error("Please pass a valid component to 'observer'")
  }

  var target = componentClass.prototype || componentClass;
  mixinLifecycleEvents(target);
  return componentClass
}
function observer ( componentClass ) { if ( typeof componentClass === 'function' && ( ! componentClass . prototype || ! componentClass . prototype . render ) && ! componentClass . isReactClass && ! React . Component . isPrototypeOf ( componentClass ) ) { var ObserverComponent = ( function ( superclass ) { function ObserverComponent ( ) { superclass . apply ( this , arguments ) ; } if ( superclass ) ObserverComponent . __proto__ = superclass ; ObserverComponent . prototype = Object . create ( superclass && superclass . prototype ) ; ObserverComponent . prototype . constructor = ObserverComponent ; ObserverComponent . prototype . render = function render ( ) { return componentClass . call ( this , this . props , this . context ) } ; return ObserverComponent ; } ( React . Component ) ) ; ObserverComponent . displayName = componentClass . displayName || componentClass . name ; ObserverComponent . contextTypes = componentClass . contextTypes ; ObserverComponent . propTypes = componentClass . propTypes ; ObserverComponent . defaultProps = componentClass . defaultProps ; return observer ( ObserverComponent ) } if ( ! componentClass ) { throw new Error ( "Please pass a valid component to 'observer'" ) } var target = componentClass . prototype || componentClass ; mixinLifecycleEvents ( target ) ; return componentClass }
Reference to mobx https://github.com/mobxjs/mobx-react-vue/blob/master/src/observer.js
Reference to mobx https : // github . com / mobxjs / mobx - react - vue / blob / master / src / observer . js
Creates an observer component