'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.