„React” musi znajdować się w zakresie, gdy używasz JSX React / React-in-jsx-scope?

129

Jestem programistą Angular i nowy w React. To proste reagowanie na komponent, ale nie działa

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;

Błąd: „React” musi znajdować się w zakresie, gdy używasz JSX React / React-in-jsx-scope

Gopinath Kaliappan
źródło

Odpowiedzi:

250

Linia importu powinna wyglądać następująco:

import React, { Component }  from 'react';

Zwróć uwagę na wielkie litery R jak React.

patrick
źródło
3
jak tego uniknąć. Chodzi mi o to, że kiedy tworzę funkcję bezpaństwową, w Nextjs jej nie wymaga
Muhaimin CS
1
@MuhaiminCS zmień regułę w pliku eslintrc
patrick
24

Dla tych, którzy nadal nie mają zaakceptowanego rozwiązania:

Dodaj

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

u góry pliku.

Ankit Pandey
źródło
15

Dodaj poniżej ustawienie .eslintrc.js/ .eslintrc.jsonzignorować te błędy:

  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
  }

Czemu? Jeśli używasz NEXT.js, nie musisz importować Reactplików u góry plików, nextjs zrobi to za Ciebie.

JerryGoyal
źródło
Użytkownik NextJs tutaj, dzięki za to. Biorąc pod uwagę, że dodanie reguły "react/react-in-jsx-scope": "off"wyeliminuje błąd, co daje dodanie globals? Dzięki!
DeBraid
10
import React, { Component } from 'react';

To jest błąd w pisowni, musisz wpisać Reactzamiast react.

kallayya Hiremath
źródło
Ta dokładna odpowiedź została już podana jako zaakceptowana odpowiedź.
Dylan Maxey