我是一个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 / React -in- JSX -scope时,'React'必须在作用域中


当前回答

下面这行为我解决了这个问题。

/** @jsx jsx */
import {css, jsx} from "@emotion/react";

希望这对你有帮助。

其他回答

这是由于从'react'导入错误的模块react而导致的错误,您试试这个如何: 1日

import React , { Component}  from 'react';

或者你也可以试试这个:

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;

如果你正在运行React 17+(在2022年,我假设你是),你需要在你的.eslintrc中添加以下一行:

{
  "extends": ["plugin:react/jsx-runtime"]
}

然后只在你的顶级文件中导入一次React,比如App.jsx——不需要在其他任何地方导入它,除非你需要一个像useEffect之类的api。

导入行应该是:

import React, { Component }  from 'react';

注意大写的R代表React。

我注意到的一件事是从“React”导入React;应该在那里,而不是import react, {Component} from 'react'; 我做过的其他事情是,

(1)添加以下行到index.js文件。

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

如果没有工作,添加这一行从“react-dom/client”导入ReactDOM;而不是从'react-dom'导入ReactDOM

(2)修改eslint配置文件的以下属性。

  rules: {
   "react/react-in-jsx-scope": "off",
  }

但是从React 17开始,不需要添加import React from ' React '和next js

这个错误非常直接,你导入了react而不是react。