小编典典

未捕获的 ReferenceError:未定义 React

all

我正在尝试使用教程使
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

谁能建议我如何解决这个问题?

[编辑 1]
源代码供参考:
这是我的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

<div id="comments"></div>

阅读 84

收藏
2022-08-21

共1个答案

小编典典

当我使用 webpack 构建我的 javascript 时,我能够重现此错误,其中包含以下块webpack.config.json

externals: {
    'react': 'React'
},

上面的配置告诉 webpack 不要require('react')通过加载 npm 模块来解析,而是期望一个window名为React.
解决方案是删除这部分配置(因此 React 将与您的 javascript 捆绑在一起)或在执行此文件之前从外部加载 React
框架(以便window.React存在)。

2022-08-21