2016-07-05 21 views
4

HTML代碼財產 '鑰匙':ReactJs瀏覽器無法讀取的不確定

<div id="content"></div> 

<script src="build/react.min.js"></script> 
<script src="build/react-dom.min.js"></script> 
<script src="https://cdn.bootcss.com/babel-core/6.1.19/browser.min.js"></script> 
<script src="ex1.jsx" type="text/babel"></script> 

JSX代碼:

// create class 
var HelloWord = React.createClass({ 
    render: function() { 
     return (
      <div> 
       <p>Hello Word!</p> 
      </div> 
     ); 
    } 
}); 

// show content 
ReactDOM.render(
    <HelloWord></HelloWord>, document.getElementById('content') 
); 
運行後

控制檯消息:

Uncaught TypeError: Cannot read property 'keys' of undefined

爲什麼?

+1

有跟你類似的問題,你可以找到[這裏](http://stackoverflow.com/questions/36672007/reactjs-cannot-read-property-keys-of-undefined) – chenkehxx

+0

第6版根本不適用於我。 – VSG24

+0

babel的版本必須小於6.0.0 –

回答

10

我也遇到了同樣的問題,同時在網上衝浪時,我發現我用的babel核心版本有問題。我用另一個替換了它,並讓我的代碼工作。

試試這個

HTML

<div id="content"></div> 

<script src="build/react.min.js"></script> 
<script src="build/react-dom.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"></script> 
<script src="ex1.jsx" type="text/babel"></script> 

JSX

var HelloWord = React.createClass({ 
    render: function() { 
     return (
      <div> 
       <p>Hello Word!</p> 
      </div> 
     ); 
    } 
}); 

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

它應該爲你工作了。

更新:

可以使用babel-standalone包巴貝爾編譯用更新的版本,因爲babel-browserdeprecated

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script> 
+0

我只是有同樣的錯誤,發現我們使用的瀏覽器的Babel版本已被棄用。您可以在瀏覽器中使用的最新版本是https://cdnjs.com/libraries/babel-standalone – MattGoldwater

+0

事實上,它適用於您更新的答案。感謝支持。 –