运行React代码时提示'ReactDOM'已定义但未使用的no-unused错误原因是什么
报错原因说明
该报错由ESLint的no-unused-vars规则触发,虽然你的代码表面已经调用了ReactDOM.render,但常见的误判原因有以下几种:
- 你使用了React 18+版本,旧版
ReactDOM.renderAPI已经被官方废弃,React配套的ESLint规则会将废弃API的调用判定为无效使用,进而误报变量未使用。React 18及以上版本的标准渲染写法如下:
import React from "react"; import ReactDOM from "react-dom/client"; const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<h1>Hello world</h1>);
- 你的ESLint配置缺失
eslint-plugin-react插件,或者没有正确配置文件解析规则:如果你的文件后缀为.js而非.jsx/.tsx,ESLint默认不会识别JSX语法,会把ReactDOM.render的调用判定为无效代码。如果用TS开发,还要确认@types/react、@types/react-dom的版本和你项目的React版本匹配。 - 本地ESLint缓存异常,之前的历史报错没有更新,重启编辑器的ESLint服务或者清除ESLint缓存后重新校验即可消除误报。
内容的提问来源于stack exchange,提问作者mythic lisp
相关产品推荐
相关产品推荐

