所以我有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
答案 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
答案 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)
要使其正常运行,您必须做三件事。
enables
安装<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
。将JSX编译为vanila js所需的
更改代码中的错字
它是babel-cli
,不是RaactDOM