Meteor 流星+;React Error元素类型无效:应为字符串(对于内置组件)

Meteor 流星+;React Error元素类型无效:应为字符串(对于内置组件),meteor,reactjs,Meteor,Reactjs,我简化了这个问题的代码 我的项目有以下两个文件: Comments.jsx Comments = React.createClass({ render() { return ( <div className="container"> Hello Comments </div> ); } }); Comments=React.createClass({ render(){ 返回( 你好评论 ); } });

我简化了这个问题的代码

我的项目有以下两个文件:

Comments.jsx

Comments = React.createClass({
  render() {
    return (
      <div className="container">
        Hello Comments
      </div>
    );
  }
});
Comments=React.createClass({
render(){
返回(
你好评论
);
}
});
App.jsx

App = React.createClass({

  renderComments() {
    return <Comments />;
  },
  render() {
    return (
      <div>
      {this.renderComments()}
      </div>
    );
  }
});
App=React.createClass({
renderComments(){
返回;
},
render(){
返回(
{this.renderComments()}
);
}
});
当我运行项目时,我得到以下错误:

警告:React.createElement:类型不应为null,未定义, 布尔值,或数字。它应该是字符串(对于DOM元素)或 ReactClass(用于复合组件)。检查的渲染方法
App

异步函数回调中出现异常:错误:不变冲突: 元素类型无效:应为字符串(对于内置组件) 或者一个类/函数(用于复合组件),但得到:object。检查
App
的渲染方法

如果我从App.jsx
render()
jsx中删除
{this.renderComments()}
,那么一切都会重新运行

我做错了什么?为什么我不能嵌入


其他信息

好吧,这真的很奇怪。如果我将
Comments
的所有实例重命名为
Commnt
Comments
commnts
,并将Comments.jsx文件重命名为
Commnt.jsx
,那么一切正常。我试着把它改名为其他任何能用的东西。我只有在使用“注释”这个词时才会出现此错误。我必须开始开车了,所以如果评论是保留字或什么的话,我会稍后再查


我的meteorjs项目中除了一个html文件和一个有两个url路由的
myhelloworld.jsx
之外没有其他文件。所以我很确定我知道我没有在其他地方使用注释。

我在meteor项目的mainproject.jsx中有这个注释
Comments=new Mongo.Collection(“注释”)。因此,这导致了命名冲突,因为meteor将此变量同时推送到服务器和客户端。

是否使用任何模块系统?是否需要.js、es6模块等?我猜你应该从Comments.jsx导出
注释
,然后在App.jsx中导入。我不确定。当我第一次创建这个meteor项目时,我只是做了meteor add react;流星加铁:路由器;流星移除自动发布。这是我在启动这个基础应用程序之前做的唯一一件事。是的,但是
app.jsx
怎么知道你的项目中有
Comments
对象呢?它可能不知道,所以它是
未定义的
。尝试将
注释的定义移动到App.jsx,它应该可以工作。很抱歉,meteor.js无法帮助您在文件之间导入/导出代码。我创建了一个小提琴,它可以正常工作:嗨,pawal,ema,我使用了一个单词而不是
注释
。我用这些细节更新了我的问题。