code: 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
  }
docs: Reference to mobx https://github.com/mobxjs/mobx-react-vue/blob/master/src/observer.js