Задать вопрос
@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.

Подскажите, пожалуйста, что делать?
  • Вопрос задан
  • 1136 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 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 Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽