J'essaie de faire fonctionner ReactJS avec des rails en utilisant ce tutoriel. J'obtiens cette erreur:
Uncaught ReferenceError: React is not defined
Mais je peux accéder à l'objet React dans la console du navigateur.J'ai
également ajouté public / dist / turbo-react.min.js comme décrit ici et également ajouté une ligne dans application.js comme décrit dans cette réponse à pas de chance. De plus, donne l'erreur://= require components
var React = require('react')
Uncaught ReferenceError: require is not defined
Quelqu'un peut-il me suggérer comment résoudre ce problème?
[EDIT 1]
Code source pour référence:
Ceci est mon comments.js.jsx
fichier:
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);
Et voici mon index.html.erb
:
<div id="comments"></div>
la source
J'ai eu cette erreur parce que j'utilisais
import ReactDOM from 'react-dom'
sans importer de réagir, une fois que je l'ai changé en ci-dessous:
import React from 'react'; import ReactDOM from 'react-dom';
L'erreur a été résolue :)
la source
ReactDOM
dans mon fichier principal, je pensais pouvoir (et devrais) supprimer la référence àReact
. Oh bien, j'ai appris quelque chose.Les raisons possibles sont 1. vous n'avez pas chargé React.JS dans votre page, 2. vous l'avez chargé après le script ci-dessus dans votre page. La solution consiste à charger le fichier JS avant le script ci-dessus.
PS
Solutions possibles.
react
dans la section externals de la configuration du webpack, vous devez charger les fichiers react js directement dans votre html avantbundle.js
import React from 'react';
la source
Si vous utilisez Webpack, vous pouvez le charger de React en cas de besoin sans avoir à le faire explicitement
require
dans votre code.Ajoutez à webpack.config.js :
plugins: [ new webpack.ProvidePlugin({ "React": "react", }), ],
Voir http://webpack.github.io/docs/shimming-modules.html#plugin-provideplugin
la source
Essayez d'ajouter:
import React from 'react' import { render } from 'react-dom' window.React = React
avant la
render()
fonction.Cela empêche parfois une erreur de retour de pop-up:
L'ajout
React
à la fenêtre résoudra ces problèmes.la source
Ajout à Santosh:
Vous pouvez charger React par
import React from 'react'
la source
import React, { Component, PropTypes } from 'react';
Cela peut également fonctionner!
la source
J'ai eu cette erreur parce que dans mon code, j'ai mal orthographié une définition de composant avec des minuscules
react.createClass
au lieu de majusculesReact.createClass
.la source
J'étais confronté au même problème. Je l'ai résolu en important
React
etReactDOM
comme suit:import React from 'react'; import ReactDOM from 'react-dom';
la source
L'erreur affichée
après cette importation, réagissez
Enfin importer react-dom
si l'erreur est la réaction n'est pas définie, veuillez ajouter ==>
import React from 'react';
si l'erreur est reactDOM n'est pas défini, veuillez ajouter ==>
import ReactDOM from 'react-dom';
la source
Si vous utilisez tapuscrit, assurez - vous que votre
tsconfig.json
a à l'"jsx": "react"
intérieur"compilerOptions"
.la source