Подтвердить что ты не робот

Reactjs Невозможно прочитать ключи свойств undefined

Я изучаю реакцию через учебник и сталкиваюсь с этой ошибкой. Это говорит: "Невозможно прочитать ключи свойств undefined". Мой код очень минимален, поэтому я предполагаю, что он имеет отношение к структуре языка. Кто-нибудь знает проблему и возможное решение?

   <!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>
4b9b3361

Ответ 1

Редактирование: как ни странно, после наших комментариев выше, я проверил, действительно ли это была базовая версия babel, я использую эту в своей скрипке:

https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js

Второе, я перехожу к вашей версии выше, я получаю следующее:

Uncaught TypeError: Cannot read property 'keys' of undefined

Используйте React.createClass not ReactDOM.createClass и оберните несколько строк html в круглых скобках так:

Рабочий пример: https://jsfiddle.net/69z2wepo/38998/

var Hello = React.createClass({
  render: function() {
    return (     
       <div>
        <h1>Hello World</h1>
        <p>This is some text</p>
       </div>
    )
  }
});

ReactDOM.render(
  <Hello name="World" />,
  document.getElementById('container')
);

Ответ 2

Сегодня мой первый день с React, и я столкнулся с этой проблемой, когда попытался использовать Babel для перевода JSX!

Проблема - это версия, которую вы пытаетесь использовать, вместо этого:

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script>

Не забудьте написать type="text/babel" в теге <script>, который вы напишете в JSX, чтобы позволить Babel перекрыть его для вас, если вы этого не сделаете, вы найдете эту ошибку (поскольку я столкнулся с ней тоже!: D):

Uncaught SyntaxError: Unexpected token <

Ответ 3

Я раньше не работал с React, но есть несколько вещей, которые, как я вижу, могут вызывать проблемы. Сначала React.createClass вместо ReactDOM.createClass. Во-вторых, вам нужно заключить html в круглые скобки:

var HelloWorld = React.createClass({
  render: function() {
    return (
      <div>
        <h1>Hello World</h1>
        <p>This is some text></p>
      </div>
    );
  }
});

Это должно заставить его работать