Kommunikation zwischen den Komponenten von Reactjs

Nachdem ich zu viel mit Redux, Flux und anderen Pub / Sub-Methoden zu kämpfen hatte, endete ich mit der folgenden Technik. Ich weiß nicht, ob dies zu großen Schäden oder Fehlern führen kann. Stellen Sie es also hier, um die erfahrenen Programmierer über die Vor- und Nachteile zu informieren.

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>


      );
  }
}

Ich sende json als Daten in meiner Anwendung und es rendert perfekt die gewünschten Komponenten und ich kann das Rendern aufrufen, ohne dass ein Pub / Sub oder ein Deep-Down der Requisiten erforderlich ist, um eine übergeordnete Methode mit einer Änderung aufzurufen. machen

Soweit funktioniert die Anwendung gut und ich bin auch begeistert von seiner Einfachheit. Bitte werfen Sie ein Licht auf diese Technik Vor- und Nachteile

Grüß

BEARBEITEN

Es ist schlecht, render aufzurufen, also habe ich es auf eine andere Methode geändert, um mehr Vor- und Nachteile dieses Setups zu erhalten.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage