ReactJs 浏览器无法读取未定义的属性“键”

IT技术 javascript reactjs
2021-04-03 10:09:14

HTML代码:

<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')
);

运行后控制台消息:

未捕获的类型错误:无法读取未定义的属性“键”

为什么?

1个回答

我也遇到了同样的问题,在上网时我发现我使用的 babel-core 版本有问题。我用另一个替换了它并使我的代码工作。

试试这个

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 编译,因为babel-browserdeprecated.

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script>
事实上,它适用于您更新的答案。感谢支持。
2021-06-05 10:09:14
我刚刚遇到了同样的错误,发现我们使用的浏览器的 Babel 版本已被弃用。您可以在浏览器中使用的最新版本是cdnjs.com/libraries/babel-standalone
2021-06-13 10:09:14