'React' must be in scope when using JSX react/react-in-jsx-scope?
我是Angular开发人员,是React的新手,这是简单的react Component,但无法正常工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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
时,"反应"必须在范围内
导入行应为:
1 | import React, { Component } from 'react'; |
注意React的大写字母R.
将以下设置添加到
1 2 3 4 5 6 | 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 } |
为什么?
如果您使用的是
对于仍无法获得公认解决方案的人:
添加
1 2 | import React from 'react' import ReactDOM from 'react-dom' |
位于文件顶部。
1 | import React, { Component } from 'react'; |
这是一个拼写错误,您需要键入
按照图片所示消除该皮棉错误并通过package.json中的addin g--fix添加自动修复
这是由于从\\'react \\'导入错误的模块反应导致的错误,您如何尝试以下操作:
1st
1 | import React , { Component} from 'react'; |
2nd或者您也可以尝试以下方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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而不是React。
TechView.jsx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import React , { Component} from 'react'; class TechView extends Component { constructor(props){ super(props); this.state = { name:'Gopinath' } } render(){ return( <span>hello Tech View</span> ); } } export default TechView; |
此外,除非是根目录index.js,否则无需在上述代码中导入渲染。
index.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import TechView from './TechView'; import * as serviceWorker from './serviceWorker'; ReactDOM.render( <React.StrictMode> <TechView /> </React.StrictMode>, document.getElementById('root') ); serviceWorker.unregister(); |
注意:您可以按照原始帖子中的方式导入渲染,并直接使用它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import React from 'react'; import { render } from 'react-dom'; import './index.css'; import TechView from './TechView'; import * as serviceWorker from './serviceWorker'; render( <React.StrictMode> <TechView /> </React.StrictMode>, document.getElementById('root') ); serviceWorker.unregister(); |
在这里,TechView成为主要的反应组件,通常也称为App。
因此,在这种情况下,我没有将文件命名为TechView.jsx,而是将其命名为App.jsx,而不是将类命名为TechView,而是将其命名为App。