Estoy tratando de hacer que ReactJS funcione con rieles usando este tutorial. Recibo este error:
Uncaught ReferenceError: React is not defined
Pero puedo acceder al objeto React en la consola del navegador
. También agregué public / dist / turbo-react.min.js como se describe aquí y también agregué una línea en application.js como se describe en esta respuesta a no tener suerte. Además, da el error://= require components
var React = require('react')
Uncaught ReferenceError: require is not defined
¿Alguien puede sugerirme cómo resolver esto?
[EDITAR 1]
Código fuente para referencia:
Este es mi comments.js.jsx
archivo:
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);
Y este es mi index.html.erb
:
<div id="comments"></div>
fuente
Recibí este error porque estaba usando
import ReactDOM from 'react-dom'
sin importar reaccionar, una vez que lo cambié a continuación:
import React from 'react'; import ReactDOM from 'react-dom';
Se solucionó el error :)
fuente
ReactDOM
en mi archivo principal, pensé que puedo (y debo) deshacerme de la referencia aReact
. Bueno, aprendí algo.Las posibles razones son: 1. no cargó React.JS en su página, 2. lo cargó después del script anterior en su página. La solución es cargar el archivo JS antes del script que se muestra arriba.
PD
Soluciones posibles.
react
en la sección de externos dentro de la configuración del paquete web, entonces debe cargar los archivos de reacción js directamente en su html antesbundle.js
import React from 'react';
fuente
Si está utilizando Webpack, puede hacer que cargue React cuando sea necesario sin tener que hacerlo explícitamente
require
en su código.Agregar a webpack.config.js :
plugins: [ new webpack.ProvidePlugin({ "React": "react", }), ],
Ver http://webpack.github.io/docs/shimming-modules.html#plugin-provideplugin
fuente
Intenta agregar:
import React from 'react' import { render } from 'react-dom' window.React = React
antes de la
render()
función.Esto a veces evita que el error aparezca en la ventana emergente:
Agregar
React
a la ventana resolverá estos problemas.fuente
Añadiendo a Santosh:
Puedes cargar React por
import React from 'react'
fuente
import React, { Component, PropTypes } from 'react';
¡Esto también puede funcionar!
fuente
Recibí este error porque en mi código escribí mal la definición de un componente con minúsculas en
react.createClass
lugar de mayúsculasReact.createClass
.fuente
Estaba enfrentando el mismo problema. Lo resolví importando
React
y meReactDOM
gusta de la siguiente manera:import React from 'react'; import ReactDOM from 'react-dom';
fuente
El error mostrado
después de esa importación reaccionar
Finalmente importar react-dom
si el error es reaccionar no está definido, agregue ==>
import React from 'react';
si el error es reactDOM no está definido, agregue ==>
import ReactDOM from 'react-dom';
fuente
Si está utilizando TypeScript, asegúrese de que
tsconfig.json
tiene"jsx": "react"
dentro"compilerOptions"
.fuente