React TypeError: React.renderComponent не является функцией
У меня есть это странное сообщение после того, как после учебного пособия React создайте простую программу.
http://blog.revathskumar.com/2014/05/getting-started-with-react.html
Я использовал bower для установки реакции и включил скрипты следующим образом:
<script src="bower_components/react/react.js"></script>
<script src="bower_components/react/JSXTransformer.js"></script>
как в учебнике.
Сначала я думал, что сценарии не загружены, но это, очевидно, не так.
В чем проблема?
Ответы
Ответ 1
В наши дни это
ReactDOM.render(
и включить исходный файл:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.js"></script>
Это предупреждение от React:
Warning: React.render is deprecated. Please use ReactDOM.render from require('react-dom') instead.
Ответ 2
bower устанавливает последнюю версию в этом случае версии 0.12.0.
есть изменение в соглашении функции рендеринга.
https://facebook.github.io/react/blog/2014/10/28/react-v0.12.html
Компонент удален из всех наших методов React.render *.
поэтому используйте
React.render(
вместо
React.renderComponent(
Ответ 3
В последнее время "React.render()" обесценивается. Используйте "ReactDom.render()"
import React from 'react';
import ReactDom from 'react-dom';
import App from './components/App.jsx';
require('./main.scss');
ReactDOM.render(<App />, document.getElementById('container'));
Ответ 4
У меня была та же проблема; Я точно следил за учебником, и я получил ту же ошибку, что и вы.
Это изменения, которые мне нужно сделать, чтобы заставить его работать...
npm install --save react-dom
изменено index.jsx
содержимое:
/** @jsx React.DOM */
'use strict'
var ReactDOM = require('react-dom')
var Hello = require('./Hello')
ReactDOM.render(<Hello />, document.getElementById('content'))
И это получило
Я очень новичок, чтобы реагировать, поэтому это может быть не лучшее решение, но оно мое сейчас.
edit: с тех пор я нашел еще одно, более позднее пошаговое руководство (которое работает)
https://www.twilio.com/blog/2015/08/setting-up-react-for-es6-with-webpack-and-babel-2.html
Ответ 5
Здесь полный script для вашей справки
<div id="target-container"></div>
<script src="build/react.js"></script>
<script src="build/react-dom.js"></script>
<script src="build/browser.min.js"></script>
<script type="text/babel">
var MyComponent = React.createClass({
render: function(){
return(
<h1>Sample text</h1>
);
}
});
ReactDOM.render(
<MyComponent/>,
document.getElementById('target-container')
);
</script>
Ответ 6
вы должны написать ReactDOM.render
вместо React.render
.
https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.js
https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.js
https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js
Эти три javascript необходимы