创建ReactJS门户

时间:2017-02-24 16:05:48

标签: reactjs react-dom

我正在开发一个简单的模态和一些工具提示。我想了解一些关于门户网站的内容,所以我决定去做一个门户网站。我有以下代码:

            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);
                }
            });

当我运行此代码时,我在控制台中收到以下错误:

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

我的理解是它无法找到将其安装在体内的元素。我已经尝试添加到index.html但这仍然没有解决它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

应该是var p = ...而不是让p = ...