"Реагувати" має бути в області застосування, коли використовується JSX react / react-in-jsx-область?


129

Я кутовий розробник і новачок у 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;

Помилка: 'React' повинен бути в області застосування при використанні JSX react / react-in-jsx-range

Відповіді:


250

Лінія імпорту повинна бути:

import React, { Component }  from 'react';

Зверніть увагу на верхній регістр R для React.


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

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

24

Для тих, хто досі не отримує прийнятого рішення:

Додайте

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

у верхній частині файлу.


14

Додайте нижче налаштування, щоб .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? Дякую!
DeBraid

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.