Пример ReactJS из reactjs .org кода не работает с JSX - PullRequest
1 голос
/ 17 января 2020

Я пытаюсь следовать примеру кода, приведенному по этой ссылке: https://reactjs.org/docs/add-react-to-a-website.html#add -react-in-one-minute , чтобы запустить компонент реагирования на существующую страницу HTML.

но когда я пытаюсь заменить собственный JavaScript на JSX, я получаю эту ошибку:

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>

1 Ответ

1 голос
/ 17 января 2020

Заменить

ReactDOM.render(e(LikeButton), domContainer);

На

ReactDOM.render(<LikeButton />, domContainer);

Рабочий код здесь https://jsbin.com/wuqoluyovu/edit?html, консоль, выход

...