2016-07-05 35 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

事实上,它适用于您更新的答案。感谢支持。 –