2014-07-26 24 views
5

Tôi chỉ mới bắt đầu chơi xung quanh với react gem nhưng dường như tôi đang gặp sự cố. Với mã bên dưới, bất cứ khi nào tôi được chuyển đến trang ví dụ phản ứng của mình, tôi nhận thấy trong bảng điều khiển dành cho nhà phát triển trình duyệt, nó sẽ thông báo "Phản hồi không được xác định". Nó đề cập đến dòng này:Phản ứng không được xác định

var react_example = React.createClass ({

mà là trong react_example.js.jsx file (xem dưới đây)

Gemfile

.
#... 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' 

development.rb

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

application.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> 
    ); 
    } 
}); 

Trả lời

1

Đó thực sự không phải là cách tốt nhất để làm điều đó, trừ khi bạn thực sự muốn tải phản ứng ngoài ứng dụng của bạn.

Các trạng thái tài liệu rõ ràng bạn nên làm điều này bên trong application.js bạn file manifest:

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

Dòng đề cập đến "thành phần" phụ thuộc vào thư mục mà bạn thực sự đặt của bạn phản ứng các file thành phần.

2

Hãy thử chuyển đổi JS của bạn bao gồm:

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

Vì bạn sử dụng React trong ứng dụng JS của bạn, nó cần được định nghĩa trước.

+0

Điều đó dường như thực hiện thủ thuật, nhưng giờ đây html của tôi không thực sự hiển thị thành phần phản ứng của tôi. React được tải, cũng như kịch bản của tôi, nhưng không có gì được hiển thị trên trang của tôi. – theStig

+0

Bạn cần một cuộc gọi đến 'React.renderComponent' hoặc trình trợ giúp xem Rails' render_component' ở đâu đó. Xem hướng dẫn React và phản ứng-rails README để biết thêm chi tiết. –

Các vấn đề liên quan