2015-10-14 35 views
25

所以我有Rails應用程序,我安裝了react-rails gem,設置它並嘗試運行測試應用程序。Uncaught ReferenceError:ReactDOM未定義

新安裝的,當我tryed運行Hello World程序,這個錯誤hapened:

Uncaught ReferenceError: ReactDOM is not defined

這是我的反應:

var HelloWorld = React.createClass({ 
    render: function() { 
    return (
     <p> 
     Hello, <input type="text" placeholder="Your name here" />! 
     It is {this.props.date.toTimeString()} 
     </p> 
    ); 
    } 
}); 

setInterval(function() { 
    ReactDOM.render(
    <HelloWorld date={new Date()} />, 
    document.getElementById('example') 
); 
}, 500); 

其保存在/應用/資產/ Java腳本/組件/test.js.jsx文件。

的Rails 4.2.4使用Ruby 2.2.3

回答

20

ReactDOM可用,因爲0.14.0,所以你需要使用React.render(因爲你有一個陣營版本0.13.3)代替,

setInterval(function() { 
    React.render(
    <HelloWorld date={new Date()} />, 
    document.getElementById('example') 
); 
}, 500); 

或者,升級你React版本,包括ReactDOM

Changes in React 0.14

+1

這奏效了,我得到了另一個錯誤,但我想我會只是刪除寶石並安裝最新版本的反應manualy。感謝您的回覆! – IvRRimUm

43

這可能是拼寫問題 - 它是ReactDOM,而不是ReactDom

這已經改變了時間的新版本反應

+0

這裏發生了一些奇怪的事情。我不確定這應該是正確的,基於可用的教程(https://facebook.github.io/react/docs/tutorial.html),但我的應用程序實際上開始工作時,我使用15.0時將ReactDom更改爲ReactDOM。 1和ReactDom 15.0.1。 – Grisk

+1

令人難以置信。剛剛花了一個小時把我的頭髮拉出來,錯誤地假設爲什麼SystemJS(這就是我使用的)告訴我ReactDom是未定義的。終於看到了這個答案,將拼寫替換爲ReactDOM,並且它可以工作......哦,男孩。 –

相關問題