javascript - 元素类型无效:应为字符串 (...) 但得到:对象
问题描述
应用程序.js
import React from 'react';
import ReactDOM from 'react-dom';
class Car extends React.Component {
render() {
return <h2>Hi, I am a Car!</h2>;
}
}
export default Car;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Car from './App.js';
ReactDOM.render(<Car />, document.getElementById('root'));
我收到错误消息:错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查HotExportedComponent
.
我知道导入指向正确的类。当我第一次在本地运行时,浏览器中会显示所需的文本“嗨,我是汽车!”。然后大约半秒后错误弹出。我认为这是错误消息中所示的热重载问题。我也为此使用了 Gatsby。
解决方案
Gatsby 使用来自 React 的内置解析,您不需要像独立的 React 应用程序那样ReactDOM
在页面中导入。index.js
只是:
import React from 'react';
// import ReactDOM from 'react-dom'; //remove it
import Car from './App.js';
const Index = ()=>{
return <Car/>
}
export default Index;
推荐阅读
- typescript3.0 - Typescript,如何避免构造函数中的代码重复?
- ios - iOS FirebaseCloudMessaging 通知在调试/试飞或发布中不起作用
- python - json 无法正确加载数据
- javascript - 如何使用javascript在html页面中动态创建元素?
- python - 如何打印从 Django 中的表单获得的值?
- excel - 如何获取 Excel VBA 集合中单个项目的密钥
- vue.js - 如何使用 S3 存储桶 URL 作为组件上图像的基本 URL
- admob - 为什么在我的应用程序中看不到直销广告系列(带有 admobs)?
- android - 运行 react-native run-android 构建成功,但停留在启动应用程序
- java - 如何解析 JSON 文件并使用它来创建类对象?