'React' должен быть в области видимости при использовании JSX react / response-in-jsx-scope?


129

Я разработчик Angular и новичок в React, это простой компонент React, но не работает

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;

Ошибка: при использовании JSX react / response-in-jsx-scope должно быть в области видимости.

Ответы:


250

Строка импорта должна быть:

import React, { Component }  from 'react';

Обратите внимание на заглавную букву R для React.


3
как этого избежать. Я имею в виду, когда я создаю функцию без сохранения состояния, в Nextjs она не требует этого
Мухаймин CS

1
@MuhaiminCS измените правило в вашем файле eslintrc
Патрик

25

Для тех, кто до сих пор не получил общепринятого решения:

Добавить

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

вверху файла.


15

Добавьте ниже параметр, чтобы .eslintrc.js/ .eslintrc.jsonигнорировать эти ошибки:

  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
  }

Зачем? Если вы используете, NEXT.jsто вам не нужно импортировать Reactфайлы поверх файлов, nextjs сделает это за вас.


Пользователь NextJs здесь, спасибо за это. Если добавление правила "react/react-in-jsx-scope": "off"устранит ошибку, что дает добавление globals? Спасибо!
ДеБрейд,

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

Это орфографическая ошибка, вам нужно ввести Reactвместо react.


Этот точный ответ уже был принят как принятый.
Дилан Макси,

0

Это ошибка, вызванная импортом неправильного модуля, реагирующего из 'react', как насчет того, чтобы попробовать это: 1-й

import React , { Component}  from 'react';

2-й Или вы также можете попробовать это:

import React from 'react';
import { render   }  from 'react-dom';

class TechView extends React.Component {

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

export default TechView;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.