我正在尝试使用本教程使 ReactJS 与 rails 一起使用。我收到此错误:
Uncaught ReferenceError: React is not defined
但是我可以在浏览器控制台中访问 React 对象, 我还添加了public/dist/turbo- react.min.js,如此处所述,并在 application.js 中添加了行,如this answer中所述,没有运气。此外,给出错误: //= require components var React = require('react') Uncaught ReferenceError: require is not defined
//= require components
var React = require('react')
Uncaught ReferenceError: require is not defined
谁能建议我如何解决这个问题?
[编辑 1] 源代码供参考: 这是我的comments.js.jsx文件:
comments.js.jsx
var Comment = React.createClass({ render: function () { return ( <div className="comment"> <h2 className="commentAuthor"> {this.props.author} </h2> {this.props.comment} </div> ); } }); var ready = function () { React.renderComponent( <Comment author="Richard" comment="This is a comment "/>, document.getElementById('comments') ); }; $(document).ready(ready);
这是我的index.html.erb:
index.html.erb
<div id="comments"></div>
当我使用 webpack 构建我的 javascript 时,我能够重现此错误,其中包含以下块webpack.config.json:
webpack.config.json
externals: { 'react': 'React' },
上面的配置告诉 webpack 不要require('react')通过加载 npm 模块来解析,而是期望一个window名为React. 解决方案是删除这部分配置(因此 React 将与您的 javascript 捆绑在一起)或在执行此文件之前从外部加载 React 框架(以便window.React存在)。
require('react')
window
React
window.React