解决React报错Property does not exist on type 'JSX.IntrinsicElements'
作者:Borislav Hadzhiev
这篇文章主要为大家介绍了React报错Property does not exist on type 'JSX.IntrinsicElements'解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
总览
当组件名称以小写字母开头时,会导致"Property does not exist on type 'JSX.IntrinsicElements'"错误。为了解决该错误,确保组件名称总是以大写字母开头,安装React声明文件并重启你的开发服务器。
这里有个示例用来展示错误是如何发生的。
// App.tsx // 👇️ name starts with lowercase letter function myComponent() { return <h1>Hello world</h1>; } function App() { return ( <div> {/* ⛔️ Property does not exist on type 'JSX.IntrinsicElements'. */} <myComponent /> </div> ); } export default App;
上述代码片段的问题在于,myComponent
是以小写字母开头的。
组件大写
为了解决该问题,请确保所有的组件名称均以大写字母开头。
// App.tsx function MyComponent() { return <h1>Hello world</h1>; } function App() { return ( <div> <MyComponent /> </div> ); } export default App;
React使用这种命名惯例来区分p
、div
、span
等内置元素和我们定义的自定义组件。
如果错误仍未解决,尝试重启IDE和开发服务器。
类型声明
如果那都没有帮助,确保安装了react
的类型声明文件。在项目的根目录下打开终端,并运行下面的命令:
# 👇️ with NPM npm install --save-dev @types/react @types/react-dom # ---------------------------------------------- # 👇️ with YARN yarn add @types/react @types/react-dom --dev
如果错误仍未解决,尝试删除node_modules
以及package-lock.json
(不是package.json
)文件,重新运行npm install
并重启IDE。
# 👇️ delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json # 👇️ clean npm cache npm cache clean --force npm install
如果错误仍然存在,请确保重新启动你的IDE和开发服务器。VSCode经常出现故障,重启有时会解决一些问题。
总结
导致该问题的原因是因为自定义组件没有以大写字母开头,因为React是通过这种方式来区分内置元素和自定义组件。
翻译原文链接:bobbyhadz.com/blog/react-…
以上就是解决React报错Property does not exist on type 'JSX.IntrinsicElements'的详细内容,更多关于React报错JSX.IntrinsicElements的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:
- vue3+ts中ref与reactive指定类型实现示例
- 前端React Nextjs中的TS类型过滤实用技巧
- react echarts tree树图搜索展开功能示例详解
- React.js源码解析setState流程
- React报错Function components cannot have string refs
- Objects are not valid as a React child报错解决
- TS装饰器bindThis优雅实现React类组件中this绑定
- React setState是异步还是同步原理解析
- React使用useEffect解决setState副作用详解
- react常见的ts类型实践解析