Задать вопрос
@Gagatyn
Самоучка

Почему React.createClass is not a function?

Здравствуйте!
Делаю все по курсу для начинающих.
При создания компонента при помощи React.createClass() консоль выдаёт ошибку React.createClass is not a function
Сам код
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>

<script type="text/babel">
        const my_news = [{
                author: 'Lorem',
                text: 'Lorem ipsi!'
            }, {
                author: 'IPSUM',
                text: 'Lorem initi nobis aspernatur sed,'
            }, {
                author: 'DOLLAR',
                text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestias id, venia'}
        ];

       let News = React.createClass({ // <---- ERROR
          render: function() {
            return (
              <div className="news">новости!</div>
            );
          }
        });

        class Comments extends React.Component {
            render() {
                return <div className="comments comments--indend">Нет новостей - нечего комментировать!</div>
            }
        };

        const App = () => {
            return (
                <div className="app">
                    <div>Всем привет, я компонент App! Я умею отображать новости:</div>
                    <News/>
                    <Comments  data={my_news}/>
                </div>
            )
        };

        ReactDOM.render(
            <App/>,
            document.getElementById('main')
        );
    </script>

1. Подскажите как решить проблему с классами
Доп. вопросы:
2. Компонент Comments не видит атрибут data, что делать?
3. Не получается вынести компонент в отдельный файл (приходится писать в index.html). Выдаёт ошибку
Access to XMLHttpRequest at 'file:/.../react/js/script.jsx' from origin 'null' has been blocked by CORS policy: 
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

Подскажите, пожалуйста, что делать?
  • Вопрос задан
  • 1134 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@adovnik
Есть новая версия этого учебника https://maxfarseer.gitbooks.io/react-course-ru-v2/... - где ты не столкнешься с этой проблемой.

Чтобы у тебя заработал React.creatClass найди CDN с более старой версией реакта. 15.4 вроде работала

Про ошибку CORS много информации в интернете. Вот вариант с оф. сайта реакта https://reactjs.org/docs/cross-origin-errors.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
laight
@laight
Back-end developer
В React 16 больше не поддерживается React.createClass. Используй классы ES6
Ответ написан
vicodin
@vicodin
Имею некоторый опыт
не учитесь по устаревшим курсам
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽