react未定义

IT技术 javascript ruby-on-rails ruby reactjs
2021-05-10 13:54:04

我刚开始玩react gem,但我似乎遇到了问题。使用下面的代码,每当我被路由到我的 React 示例页面时,我注意到在浏览器开发人员控制台中,它会说“React 未定义”。它指的是这一行:

var react_example = React.createClass({

它在react_example.js.jsx文件中(见下文)。

文件

#... as well as other gems...
gem 'nokogiri'
gem 'react-rails' #<------ React
gem 'less-rails'
gem 'therubyracer'
gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'

发展.rb

config.react.variant = :development
config.react.addons = true

应用程序.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>React example</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag "react" %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

react_example.js.jsx

/** @jsx React.DOM */

var react_example = React.createClass({
  render: function () {
    return (
      <div>
        <h5>React</h5>
      </div>
    );
  }
});
2个回答

尝试切换您的 JS 包括:

<%= javascript_include_tag "react" %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

由于您在应用程序 JS 中使用了 React,因此需要先对其进行定义。

这实际上不是最好的方法,除非你真的想从你的应用程序中加载react。

文档明确指出您应该在 application.js 清单文件中执行此操作:

//= require react
//= require react_ujs
//= require components

提到“组件”的行取决于您实际放置 React 组件文件的文件夹。