我已经看过之前提出的问题,并且已经完成了所有建议的操作:
index.hmtl
<head>
<title>My ChatApp</title>
</head>
<body>
<div id="app"></div>
</body>
index.js
import { Meteor } from "meteor/meteor";
import React from "react";
import { render } from "react-dom";
import ChatComponent from "../../ui/App";
Meteor.startup(() => {
render(<ChatComponent />, document.getElementById("app"));
});
App.js
import { React, Component } from "react";
class ChatComponent extends Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
return <h1>Try Chatting</h1>;
}
}
export default ChatComponent;
我仍然从第9行(即“返回”行)的App.js文件中收到错误“未捕获的TypeError:无法读取未定义的属性'createElement'”。如果我将ChatComponent更改为一个函数而不是一个类,它将起作用,但是在文档中有反应说它没有区别。我也尝试将类的构造函数部分注释掉/一起删除,但没有任何效果。我有点茫然为什么这不起作用。为什么它不能作为课程使用?
答案 0 :(得分:1)
您要在App.js
中将此导入行用于React:
import React, { Component } from 'react';
其原因是jsx
语法被编译成React.createElement
调用。
因此错误Cannot read property 'createElement' of undefined
告诉您React
未定义。
在React包中,React
是默认导出,因此不能在花括号中导入