我正在通过教程学习reactjs并遇到了这个错误 . 这说“无法读取未定义的属性'键'我的代码非常小,所以我认为它与语言的结构有关 . 有谁知道问题和可能的解决方案?
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/6.1.19/browser.min.js"></script>
<title>ReactJs</title>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
var HelloWorld = ReactDOM.createClass({
render: function() {
return
<div>
<h1>Hello World</h1>
<p>This is some text></p>
</div>
}
});
ReactDOM.render(
<HelloWorld />, document.getElementById('app'));
</script>
</body>
</html>
5 回答
编辑:奇怪的是,在我们上面的评论之后,我检查了它是否确实是babel核心版本,我在我的小提琴中使用这个:
https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js
第二个我切换到你上面的版本,我得到这个:
使用
React.createClass
而不是ReactDOM.createClass
并在括号中包含多行html,如下所示:工作示例:https://jsfiddle.net/69z2wepo/38998/
需要明确的是,其他答案有点令人费解 . 问题是使用“babel-core”而不是“babel-standalone” . 只需要查找一个用于babel-standalone的cdn .
今天是我使用React的第一天,当我尝试使用Babel来转换JSX时,我遇到了这个问题!
问题是您尝试使用的版本,请使用此版本:
不要忘记在
<script>
标签中写入type="text/babel"
,您将编写JSX以让Babel为您转换它,如果您不这样做,您会发现此错误(因为我也遇到过它!:D):Uncaught SyntaxError: Unexpected token <
这是 babel-core 的版本,它没有给我错误,如下所示:
如果要使用最新版本,可以使用 latest standalone version . (截至2018年11月22日)
但是这给出了以下警告:
"You are using the in-browser Babel transformer. Be sure to precompile your scripts for production - https://babeljs.io/docs/setup/"
我以前没有和React合作过,但是我看到的一些事情可能会导致你的问题 . 首先,
React.createClass
而不是ReactDOM.createClass
. 其次,您需要将html包装在括号中:这应该让它工作