Saya mencoba membuat ReactJS berfungsi dengan rel menggunakan tutorial ini . Saya mendapatkan kesalahan ini:
Uncaught ReferenceError: React is not defined
Tetapi saya dapat mengakses objek React di konsol browser.
Saya juga menambahkan public / dist / turbo-react.min.js seperti yang dijelaskan di sini dan juga menambahkan baris di application.js seperti yang dijelaskan dalam jawaban ini tidak berhasil. Selain itu, berikan kesalahan://= require components
var React = require('react')
Uncaught ReferenceError: require is not defined
Adakah yang bisa menyarankan saya tentang cara menyelesaikan ini?
[EDIT 1]
Kode sumber untuk referensi:
Ini adalah comments.js.jsx
file saya :
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);
Dan ini milik saya index.html.erb
:
<div id="comments"></div>
sumber
Saya mendapat kesalahan ini karena saya menggunakan
import ReactDOM from 'react-dom'
tanpa mengimpor react, setelah saya mengubahnya menjadi di bawah ini:
import React from 'react'; import ReactDOM from 'react-dom';
Kesalahan teratasi :)
sumber
ReactDOM
di file utama saya, saya pikir saya bisa (dan harus) menyingkirkan referensi keReact
. Baiklah, pelajari sesuatu.Jika Anda menggunakan Webpack, Anda dapat membuatnya memuat React saat diperlukan tanpa harus secara eksplisit
require
memasukkannya ke dalam kode Anda.Tambahkan ke webpack.config.js :
plugins: [ new webpack.ProvidePlugin({ "React": "react", }), ],
Lihat http://webpack.github.io/docs/shimming-modules.html#plugin-provideplugin
sumber
Kemungkinan alasannya adalah 1. Anda tidak memuat React.JS ke halaman Anda, 2. Anda memuatnya setelah skrip di atas ke dalam halaman Anda. Solusi memuat file JS sebelum skrip yang ditunjukkan di atas.
PS
Solusi yang memungkinkan.
react
di bagian eksternal di dalam konfigurasi webpack, maka Anda harus memuat file react js langsung ke html Anda sebelumnyabundle.js
import React from 'react';
sumber
Coba tambahkan:
import React from 'react' import { render } from 'react-dom' window.React = React
sebelum
render()
fungsinya.Ini terkadang mencegah kesalahan untuk muncul kembali:
Menambahkan
React
ke jendela akan menyelesaikan masalah ini.sumber
Menambahkan ke Santosh:
Anda dapat memuat React dengan
import React from 'react'
sumber
import React, { Component, PropTypes } from 'react';
Ini juga bisa berhasil!
sumber
Saya mendapat kesalahan ini karena dalam kode saya, saya salah mengeja definisi komponen dengan huruf kecil,
react.createClass
bukan huruf besarReact.createClass
.sumber
Saya menghadapi masalah yang sama. Saya menyelesaikannya dengan mengimpor
React
danReactDOM
menyukai sebagai berikut:import React from 'react'; import ReactDOM from 'react-dom';
sumber
Jika Anda menggunakan Babel dan React 17, Anda mungkin perlu menambahkan "runtime2:" automatic "ke konfigurasi.
{ "presets": ["@babel/preset-env", ["@babel/preset-react", { "runtime": "automatic" }]] }
sumber
Kesalahan yang ditampilkan
setelah impor itu bereaksi
Terakhir, impor react-dom
jika error adalah react tidak didefinisikan, tambahkan ==>
import React from 'react';
jika error reactDOM tidak ditentukan, tambahkan ==>
import ReactDOM from 'react-dom';
sumber
Jika Anda menggunakan TypeScript, pastikan Anda
tsconfig.json
memilikinya di"jsx": "react"
dalamnya"compilerOptions"
.sumber