2015-12-09 18 views
5

Tôi có tập tin commentBox.jsx, với đoạn mã sau:Phản ứng lớp không được xác định (văn bản/babel)

var CommentBox = React.createClass({ 
    render: function() { 
    return (
     <div className="commentBox"> 
     <h1>Comments</h1> 
     </div> 
    ); 
    } 
}); 

Trong index.html, tôi muốn làm cho thành phần này:

<div id="content"></div> 
<script type="text/babel" src="scripts/commentBox.jsx"></script> 

<script type="text/babel"> 
    ReactDOM.render(<CommentBox />, document.getElementById('content')); 
</script> 

Nhưng tôi nhận được lỗi: "CommentBox không được xác định"; Tại sao điều này không hoạt động? Nếu tôi sẽ đặt tất cả mã trong một tệp (commentBox.js) - nó sẽ hoạt động.

Trả lời

3

Bạn cần khai báo var CommentBox; trong khối tập lệnh riêng của nó ở trên hai mã còn lại. Phạm vi của các biến của bạn không được chia sẻ giữa nhập khẩu tập lệnh của bạn.

<div id="content"></div> 
 
<script> 
 
    var CommentBox; 
 
</script> 
 
<script type="text/babel" src="scripts/commentBox.jsx"></script> 
 
<script type="text/babel"> 
 
    ReactDOM.render(<CommentBox />, document.getElementById('content')); 
 
</script>

Bạn cũng có thể loại bỏ các var từ file jsx của bạn.

+0

Điều này làm việc cho tôi. Hãy chắc chắn sử dụng '

0

CommentBox không được khai báo. Nếu bạn muốn theo cách đó, thì mã của bạn sẽ như sau:

<script type="text/babel"> 
var CommentBox = React.createClass({ 
    render: function() { 
    return (
    <div className="commentBox"> 
      <h1>Comments</h1> 
    </div> 
    ); 
    } 
}); 

ReactDOM.render(<CommentBox />, document.getElementById('content')); 

</script> 
+0

Bạn có thể nói gì về đối tượng ReactDom trong mã này? Nó không được tuyên bố? –

+0

ReactDom là thư viện được sử dụng để đưa thành phần vào DOM và phải được nhập vào mã nhưng thành phần chính nó như CommentBox cũng không được xác định. – vistajess

+0

Câu trả lời sai)) CommentBox tôi đã thêm trước cuộc gọi của ReactDOM.render. Nó phải tồn tại trong phạm vi toàn cục của đối tượng cửa sổ –

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