【发布时间】:2020-05-04 00:25:50
【问题描述】:
我正在尝试按照此链接中给出的代码示例:https://reactjs.org/docs/add-react-to-a-website.html#add-react-in-one-minute 将反应组件运行到现有的 HTML 页面中。
但是当我尝试用JSX 替换本机JavaScript 时,我收到了这个错误:
ReferenceError: e 未定义
我知道我需要用一些东西替换 e(LikeButton))。但没有提到渲染代码中要更新的内容。
likebutton.js:
'use strict';
// const e = React.createElement;
class LikeButton extends React.Component {
constructor(props) {
super(props);
this.state = { liked: false };
}
render() {
if (this.state.liked) {
return 'You liked this.';
}
// Display a "Like" <button>
return (
<button onClick={() => this.setState({ liked: true })}>
Like
</button>
);
}
}
index.html:
<!-- Load React. -->
<!-- Note: when deploying, replace "development.js" with "production.min.js". -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<!-- Load our React component. -->
<script src="{{ asset('theme_assets/js/react/likebutton.js') }}" type="text/babel"></script>
<script>
const domContainer = document.querySelector('#like_button_container');
ReactDOM.render(e(LikeButton), domContainer);
</script>
【问题讨论】:
-
具体在哪里?但我认为它不会起作用,因为
e没有在任何地方定义。那么用什么代替e(...)
标签: javascript reactjs jsx babeljs