'React' harus berada dalam lingkup saat menggunakan JSX react / react-in-jsx-scope?

129

Saya seorang Pengembang Angular dan baru mengenal React, Ini adalah Komponen react sederhana tetapi tidak berfungsi

import react , { Component}  from 'react';
import         { render   }  from 'react-dom';

class TechView extends Component {

    constructor(props){
       super(props);
       this.state = {
           name:'Gopinath'
       }
    }
    render(){
        return(
            <span>hello Tech View</span>
        );
    }
}

export default TechView;

Kesalahan: 'React' harus berada dalam lingkup saat menggunakan JSX react / react-in-jsx-scope

Gopinath Kaliappan
sumber

Jawaban:

250

Garis impor harus:

import React, { Component }  from 'react';

Perhatikan huruf besar R untuk React.

patrick
sumber
3
bagaimana menghindarinya. Maksud saya ketika saya membuat fungsi stateless, di Nextjs tidak memerlukannya
Muhaimin CS
1
@MuhaiminCS mengubah aturan dalam file eslintrc Anda
patrick
24

Bagi mereka yang masih belum mendapatkan solusi yang diterima:

Menambahkan

import React from 'react'
import ReactDOM from 'react-dom'

di bagian atas file.

Ankit Pandey
sumber
15

Tambahkan pengaturan di bawah ini ke .eslintrc.js/ .eslintrc.jsonuntuk mengabaikan kesalahan ini:

  rules: {
    // suppress errors for missing 'import React' in files
   "react/react-in-jsx-scope": "off",
    // allow jsx syntax in js files (for next.js project)
   "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], //should add ".ts" if typescript project
  }

Mengapa? Jika Anda menggunakan NEXT.jsmaka Anda tidak perlu mengimpor Reactdi atas file, nextjs melakukannya untuk Anda.

JerryGoyal
sumber
Pengguna NextJs di sini, terima kasih untuk ini. Mengingat menambahkan aturan "react/react-in-jsx-scope": "off"akan menghilangkan kesalahan, apa yang globalsdicapai dengan menambahkan ? Terima kasih!
DeBraid
10
import React, { Component } from 'react';

Ini adalah kesalahan ejaan, Anda perlu mengetik Reactbukan react.

kallayya Hiremath
sumber
Jawaban yang tepat ini sudah disediakan sebagai jawaban yang diterima.
Dylan Maxey