我是一个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语法的文件自动包含import React from ' React ',请安装React -require babel插件:
npm install babel-plugin-react-require --save-dev
在.babelrc中添加react-require。这个插件应该在transform-es2015-modules-commonjs插件之前定义,因为它使用ES2015模块语法将React导入作用域。
{
"plugins": [
"react-require"
]
}
来源:https://www.npmjs.com/package/babel-plugin-react-require
我注意到的一件事是从“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中导入react,并且在导入后始终保持react的首字母大写。
import React, {Component} from '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;