2017-02-24 6 views
0

Ich entwickle ein einfaches Modal und einige Tooltips. Ich wollte ein wenig über Portale verstehen, also habe ich beschlossen, einen zu machen. Ich habe den folgenden Code:Erstellen eines ReactJS-Portals

  const Portal = React.createClass({ 
       render() { return null }, 
       portalElement: null, 
       componentDidMount() { 
        let p = this.props.portalId && document.getElementById(this.props.portalId); 
        if(!p) { 
         let p = document.createElement('div'); 
         p.id = this.props.portalId; 
         document.body.appendChild(p); 
        } 
        this.portalElement = p; 
        this.componentDidUpdate(); 
       }, 
       componentWillUnmount() { 
        document.body.removeChild(this.portalElement); 
       }, 
       componentDidUpdate() { 
        render(<div {...this.props}>{this.props.children}</div>, this.portalElement); 
       } 
      }); 

Wenn ich diesen Code ausführen, bekomme ich die folgende Fehlermeldung in der Konsole:

Uncaught Error: _registerComponent(...): Target container is not a DOM element. 

Mein Verständnis ist, dass es kein Element finden kann, wo dies montieren in Körper . Ich habe versucht, zu index.html hinzuzufügen, aber das hat es immer noch nicht gelöst.

Danke für die Hilfe.

+0

prüfen diese http://stackoverflow.com/questions/28802179/how-to-create-a-react-modalwhich-is -append-to-body-with-transitions –

+0

@GinoLlerena Danke für schnelle Antwort. Ich bin diesem Tutorial gefolgt - so habe ich den obigen Code bekommen. –

Antwort

0

Sollte var p = ... sein und nicht zulassen, p = ...