javascript-未捕获的ReferenceError:未定义ReactDOM

所以我有Rails应用程序,我安装了react-rails gem,对其进行设置并尝试运行测试应用程序。

刚安装时,当我尝试运行hello world程序时,发生此错误:

未捕获的ReferenceError:未定义ReactDOM

这是我的反应:

var HelloWorld = React.createClass({
  render: function() {
    return (
      <p>
        Hello, <input type="text" placeholder="Your name here" />!
        It is {this.props.date.toTimeString()}
      </p>
    );
  }
});

setInterval(function() {
  ReactDOM.render(
    <HelloWorld date={new Date()} />,
    document.getElementById('example')
  );
}, 500);

它保存在/app/assets/javascripts/components/test.js.jsx文件中。

Rails 4.2.4和Ruby 2.2.3

4个解决方案
68 votes

这可能是拼写问题-它是ReactDOM,而不是ReactDom

随着时间的推移,这随着新版本的react改变了

Adam answered 2020-07-29T09:47:03Z
27 votes

React从0.14.0版本开始可用,因此您需要使用ReactDOM(因为您有一个React版本0.13.3),

setInterval(function() {
  React.render(
    <HelloWorld date={new Date()} />,
    document.getElementById('example')
  );
}, 500);

或升级您的React版本并包括ReactDOM

React 0.14的变化

Alexander T. answered 2020-07-29T09:46:38Z
10 votes

您必须导入

import ReactDOM from 'react-dom';
Kay answered 2020-07-29T09:47:23Z
7 votes

确保已包含react-dom.js。您可以从CDN添加它,也可以使用所选的js工具链。

安装React-使用CDN

<script src="https://unpkg.com/react@15/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
Seppo Erviälä answered 2020-07-29T09:47:47Z
translate from https://stackoverflow.com:/questions/33125669/uncaught-referenceerror-reactdom-is-not-defined