You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用create-react-app启动项目报错:JSX使用时React需在作用域内

解决'React' must be in scope when using JSX报错问题

问题原因

这个报错的核心原因是:React 17.x版本之前,所有使用JSX的文件必须显式导入React。虽然React 17+引入了自动JSX转换特性(无需手动导入React即可编写JSX),但如果你的create-react-app项目依赖的react-scripts版本过低,就不会启用这个特性,导致默认生成的代码因缺少React导入触发报错。

解决方案

方案1:手动添加React导入(快速临时修复)

直接在App.js开头添加React导入语句,即可立即消除报错:

import React from 'react'; // 新增该行
import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

方案2:升级react-scripts版本(彻底解决)

如果想保留React 17+的自动JSX转换特性(无需手动导入React),可以升级项目的react-scripts到支持该特性的版本:
打开终端执行命令:

npm install react-scripts@latest --save

若使用yarn则执行:

yarn upgrade react-scripts@latest

升级完成后重启项目(npm start),报错即可消失。

方案3:同步升级React版本(可选)

若升级react-scripts后仍有问题,可检查当前React版本是否为17.x及以上:

npm list react

若版本低于17.x,同步升级React和ReactDOM:

npm install react@latest react-dom@latest --save

内容的提问来源于stack exchange,提问作者Enzo Marin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:03:18