'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

Jawaban:


250

Garis impor harus:

import React, { Component }  from 'react';

Perhatikan huruf besar R untuk React.


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.


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.


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.


Jawaban yang tepat ini sudah disediakan sebagai jawaban yang diterima.
Dylan Maxey
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.