Связь между компонентами Reactjs

После того, как я слишком много боролся с Redux, flux и другими методами pub / sub, я закончил со следующей техникой. Я не знаю, может ли это привести к серьезным повреждениям или недостаткам, поэтому выкладываю это здесь, чтобы получить представление от опытных программистов о его плюсах и минусах.

var thisManager = function(){

    var _Manager = [];
    return{
        getThis : function(key){
            return  _Manager[key];
        },
        setThis : function(obj){            
            _Manager[obj.key] = obj.value;
        }
    }
};
var _thisManager = new thisManager();

// React Component
class Header extends Component{
   constructor(){
      super();
      _thisManager.setThis({ key: "Header", value:this}
   }
    someFunction(data){
        // call this.setState here with new data. 
   }
   render(){
      return <div />
   }
}

// Then from any other component living far somewhere you can pass the data to the render function and it works out of the box. 
i.e. 

class Footer extends Component{
  _click(e){
     let Header = _thisManager.getThis('Header');
     Header.somefunction(" Wow some new data from footer event ");
  }
 render(){
      return(
      <div>
          <button onClick={this._click.bind(this)}> send data to header and call its render </button>
      </div>


      );
  }
}

Я отправляю json как данные в мое приложение, и оно прекрасно отображает нужные компоненты, и я могу вызвать рендер без каких-либо публикаций / переходов или глубоких переходов по подпрограммам, чтобы вызвать родительский метод с изменением this.setState для повторного рендеринга. ,

Пока приложение работает нормально, и мне тоже нравится его простота. Просьба пролить свет на эту технику плюсы и минусы

С уважением

РЕДАКТИРОВАТЬ:

Плохо вызывать рендер, поэтому я изменил его на другой метод, чтобы получить больше плюсов и минусов этой настройки.

Ответы на вопрос(1)

Ваш ответ на вопрос