未捕获的ReferenceError:未定义ReactDOM

时间:2015-10-14 12:44:08

标签: javascript ruby-on-rails ruby ruby-on-rails-4 reactjs

所以我有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

5 个答案:

答案 0 :(得分:64)

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

随着新发布的反应

,这已经发生了变化

答案 1 :(得分:26)

ReactDOM版本 0.14.0 后可用,因此您需要使用React.render(因为您的React版本 0.13.3 )相反,

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

或升级您的React版本并添加ReactDOM

  

Changes in React 0.14

答案 2 :(得分:8)

您必须导入

import ReactDOM from 'react-dom';

答案 3 :(得分:7)

确保您已加入react-dom.js。您可以从CDN添加它或使用您选择的js工具链。

Installing React - using a 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>

答案 4 :(得分:0)

要使其正常运行,您必须做三件事。

  1. 导入开发所需的CDN(对Web开发说React和React-dom)
enables
  1. 安装<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> 。将JSX编译为vanila js所需的

  2. 更改代码中的错字

它是babel-cli,不是RaactDOM