Estou tentando fazer o ReactJS funcionar com trilhos usando este tutorial. Estou recebendo este erro:
Uncaught ReferenceError: React is not defined
Mas posso acessar o objeto React no console do navegador
. Também adicionei public / dist / turbo-react.min.js conforme descrito aqui e também adicionei linha em application.js, conforme descrito nesta resposta sem sorte. Além disso, dá o erro://= require components
var React = require('react')
Uncaught ReferenceError: require is not defined
Alguém pode me sugerir como resolver isso?
[EDIT 1]
Código-fonte para referência:
Este é meu comments.js.jsx
arquivo:
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);
E este é o meu index.html.erb
:
<div id="comments"></div>
fonte
Recebi este erro porque estava usando
import ReactDOM from 'react-dom'
sem importar reagir, uma vez que mudei para abaixo:
import React from 'react'; import ReactDOM from 'react-dom';
O erro foi resolvido :)
fonte
ReactDOM
no meu arquivo principal, pensei que posso (e devo) me livrar da referência aReact
. Bem, aprendi algo.Se você estiver usando o Webpack, pode fazer com que ele carregue o React quando necessário, sem ter que explicitamente
require
em seu código.Adicione a webpack.config.js :
plugins: [ new webpack.ProvidePlugin({ "React": "react", }), ],
Consulte http://webpack.github.io/docs/shimming-modules.html#plugin-provideplugin
fonte
Os possíveis motivos são 1. você não carregou o React.JS em sua página, 2. você o carregou após o script acima em sua página. A solução é carregar o arquivo JS antes do script mostrado acima.
PS
Soluções possíveis.
react
na seção externa dentro da configuração do webpack, você deve carregar os arquivos react js diretamente em seu html antesbundle.js
import React from 'react';
fonte
Tente adicionar:
import React from 'react' import { render } from 'react-dom' window.React = React
antes da
render()
função.Isso às vezes evita que o erro de pop-up retorne:
Adicionar
React
à janela resolverá esses problemas.fonte
Adicionando ao Santosh:
Você pode carregar o React por
import React from 'react'
fonte
import React, { Component, PropTypes } from 'react';
Isso também pode funcionar!
fonte
Recebi este erro porque em meu código eu digitei incorretamente uma definição de componente com letras minúsculas em
react.createClass
vez de maiúsculasReact.createClass
.fonte
Eu estava enfrentando o mesmo problema. Resolvi importando
React
eReactDOM
gosto da seguinte maneira:import React from 'react'; import ReactDOM from 'react-dom';
fonte
Se você estiver usando o Babel e o React 17, pode ser necessário adicionar "runtime2:" automatic "à configuração.
{ "presets": ["@babel/preset-env", ["@babel/preset-react", { "runtime": "automatic" }]] }
fonte
O erro exibido
depois dessa importação reagir
Finalmente importe a reação
se o erro for reagir não for definido, adicione ==>
import React from 'react';
se o erro for reactDOM não definido, adicione ==>
import ReactDOM from 'react-dom';
fonte
Se você estiver usando TypeScript, certifique-se de que
tsconfig.json
está"jsx": "react"
dentro de"compilerOptions"
.fonte