@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.

Подскажите, пожалуйста, что делать?
  • Вопрос задан
  • 1096 просмотров
Решения вопроса 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
Имею некоторый опыт
не учитесь по устаревшим курсам
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы