简体   繁体   English

如何正确获取此组件以进行渲染?

[英]How can I correctly get this component to render?

I have a component defined, Pragmatometer, which I am trying to render to div#main: 我有一个定义的组件,Pragmatometer,我试图将其渲染为div#main:

        React.render(React.createElement(Pragmatometer,
          {}), document.getElementById('main'));

Chrome's JavaScript console shows, with line numbers in the thousands for ReactJS: Chrome的JavaScript控制台显示,ReactJS的行号为数千:

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

My HTML is: 我的HTML是:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Pragmatometer</title>
    <style type="text/css">
        body
            {
            font-family: Verdana, Arial, sans;
            }
    </style>
</head>
<body>
    <h1>Pragmatometer</h1>
    <div id="main"></div>
    <script src="//cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react.js">
    </script>
    <script
      src="//cdnjs.cloudflare.com/ajax/libs/showdown/0.3.1/showdown.min.js">
    </script>

    <script src="/js/site.js"></script>
</body>
</html>

Is the error in that React.render() call, or an issue concerning the Pragmatometer component? 是该React.render()调用中的错误,还是有关实用程序组件的问题? What are the usual suspects for this kind of issue? 这类问题通常有哪些嫌疑人?

Thanks, 谢谢,

rendering is now done via ReactDOM.render() 现在通过ReactDOM.render()完成渲染

ReactDOM.render(
    React.createElement('Pragmatometer',
        null, 'Hello'),
        document.getElementById('app')
    );

This works 这有效

React.render(
      React.createElement('Pragmatometer',
          null, 'Hello'),
        document.getElementById('main')
      );

if you want to use Pragmatometer without single quote '' you should set it up abd I'm wondering why you don't use jsx it's very easy to write the component. 如果要使用不带单引号的Pragmatometer'',则应将其设置为abd,我想知道为什么不使用jsx,编写组件非常容易。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM