Я пытаюсь заставить ReactJS работать с рельсами с помощью этого руководства. Я получаю эту ошибку:
Uncaught ReferenceError: React is not defined
Но я могу получить доступ к объекту React в консоли браузера.
Я также добавил public / dist / turbo-react.min.js, как описано здесь, а также добавил строку в application.js, как описано в этом ответе, но безуспешно. Дополнительно выдает ошибку://= require components
var React = require('react')
Uncaught ReferenceError: require is not defined
Может ли кто-нибудь подсказать мне, как это решить?
[EDIT 1]
Исходный код для справки:
Это мой comments.js.jsx
файл:
var Comment = React.createClass({
render: function () {
return (
<div className="comment">
<h2 className="commentAuthor">
{this.props.author}
</h2>
{this.props.comment}
</div>
);
}
});
var ready = function () {
React.renderComponent(
<Comment author="Richard" comment="This is a comment "/>,
document.getElementById('comments')
);
};
$(document).ready(ready);
А это мой index.html.erb
:
<div id="comments"></div>
источник
Я получил эту ошибку, потому что использовал
import ReactDOM from 'react-dom'
без импорта реакции, как только я изменил его на ниже:
import React from 'react'; import ReactDOM from 'react-dom';
Ошибка решилась :)
источник
ReactDOM
в своем основном файле, я думал, что могу (и должен) избавиться от ссылки наReact
. Ну что ж, кое-что узнал.Возможные причины: 1. вы не загрузили React.JS на свою страницу, 2. вы загрузили его после вышеуказанного скрипта на свою страницу. Решение - загрузить файл JS перед показанным выше сценарием.
PS
Возможные решения.
react
в разделе externals внутри конфигурации веб-пакета, вы должны загрузить файлы js реакции непосредственно в свой html передbundle.js
import React from 'react';
источник
Если вы используете Webpack, вы можете загрузить React, когда это необходимо, без необходимости явно указывать
require
это в своем коде.Добавьте в webpack.config.js :
plugins: [ new webpack.ProvidePlugin({ "React": "react", }), ],
См. Http://webpack.github.io/docs/shimming-modules.html#plugin-provideplugin
источник
Попробуй добавить:
import React from 'react' import { render } from 'react-dom' window.React = React
перед
render()
функцией.Иногда это предотвращает появление ошибки при возврате всплывающего окна:
Добавление
React
в окно решит эти проблемы.источник
Добавление в Сантош:
Вы можете загрузить React с помощью
import React from 'react'
источник
import React, { Component, PropTypes } from 'react';
Это тоже может сработать!
источник
Я получил эту ошибку, потому что в моем коде я неправильно написал определение компонента со строчными буквами
react.createClass
вместо верхнего регистраReact.createClass
.источник
Я столкнулся с той же проблемой. Я решил это путем импорта
React
иReactDOM
вроде следующего:import React from 'react'; import ReactDOM from 'react-dom';
источник
Отображаемая ошибка
после этого импортная реакция
Наконец импортируйте react-dom
если ошибка не определена, добавьте ==>
import React from 'react';
если ошибка responseDOM не определена, добавьте ==>
import ReactDOM from 'react-dom';
источник
Если вы используете машинопись, убедитесь , что ваш
tsconfig.json
есть"jsx": "react"
внутри"compilerOptions"
.источник