'React' doit être dans la portée lors de l'utilisation de JSX react / react-in-jsx-scope?


129

Je suis un développeur angulaire et nouveau sur React, il s'agit d'un simple composant de réaction mais ne fonctionne pas

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;

Erreur: 'React' doit être dans la portée lors de l'utilisation de JSX react / react-in-jsx-scope

Réponses:


250

La ligne d'importation doit être:

import React, { Component }  from 'react';

Notez le R majuscule pour React.


3
comment l'éviter. Je veux dire lorsque je crée une fonction sans état, dans Nextjs, cela ne l'exige pas
Muhaimin CS

1
@MuhaiminCS change la règle dans votre fichier eslintrc
patrick

24

Pour ceux qui n'obtiennent toujours pas la solution acceptée:

Ajouter

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

en haut du fichier.


15

Ajoutez le paramètre ci-dessous pour .eslintrc.js/ .eslintrc.jsonpour ignorer ces erreurs:

  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
  }

Pourquoi? Si vous utilisez, NEXT.jsvous n'avez pas besoin d'importer Reacten haut des fichiers, nextjs le fait pour vous.


Utilisateur NextJs ici, merci pour cela. Étant donné que l'ajout de la règle "react/react-in-jsx-scope": "off"éliminera l'erreur, qu'est-ce que l'ajout globalsaccomplit? Merci!
DeBraid

10
import React, { Component } from 'react';

Il s'agit d'une faute d'orthographe, vous devez taper Reactau lieu de react.


Cette réponse exacte a déjà été fournie comme réponse acceptée.
Dylan Maxey
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.