'React' phải nằm trong phạm vi khi sử dụng JSX react / react-in-jsx-scope?


129

Tôi là một Nhà phát triển Angular và mới sử dụng React, Đây là Thành phần phản ứng đơn giản nhưng không hoạt động

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;

Lỗi: 'React' phải nằm trong phạm vi khi sử dụng JSX react / react-in-jsx-scope

Câu trả lời:


250

Dòng nhập phải là:

import React, { Component }  from 'react';

Lưu ý chữ hoa R cho React.


3
làm thế nào để tránh nó. Ý tôi là khi tôi tạo một hàm không trạng thái, trong Nextjs, nó không yêu cầu nó
Muhaimin CS

1
@MuhaiminCS thay đổi quy tắc trong tập tin eslintrc của bạn
patrick

24

Đối với những người vẫn không nhận được giải pháp được chấp nhận:

Thêm vào

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

ở đầu tệp.


14

Thêm cài đặt bên dưới để .eslintrc.js/ .eslintrc.jsonđể bỏ qua những lỗi này:

  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
  }

Tại sao? Nếu bạn đang sử dụng NEXT.jsthì bạn không yêu cầu nhập Reactở đầu tệp, nextjs thực hiện điều đó cho bạn.


Người dùng NextJs ở đây, cảm ơn vì điều này. Với việc thêm quy tắc "react/react-in-jsx-scope": "off"sẽ loại bỏ lỗi, việc thêm sẽ globalsđạt được kết quả gì? Cảm ơn!
DeBraid

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

Đây là một lỗi chính tả, bạn cần phải gõ Reactthay vì react.


Câu trả lời chính xác này đang chờ được cung cấp dưới dạng câu trả lời được chấp nhận.
Dylan Maxey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.