流星反应ES6类React.Component

时间:2015-09-15 23:52:09

标签: meteor reactjs

我不确定这是否是Meteor中的已知问题。他们确实说他们不支持1.2中的模块,但我不知道这是模块问题还是其他问题。

我正在尝试使用ES6类构建我的React组件,如下所示:

const {Router, Route} = ReactRouter;

Meteor.startup(function() {
    React.render((
        <Router>
            <Route path="/" component={App} />
        </Router>
    ), document.body)
});

然后我添加这条路线:

Uncaught ReferenceError: App is not defined

如果它们都是相同的.jsx文件,则运行正常。不幸的是,如果我将应用程序和路由器拆分为单独的文件,它就不起作用。我从浏览器中得到了这个:

{{1}}

有什么想法吗?如果我回到createClass()语法,它在两个单独的文件中工作正常。我尝试添加一个“导出类”,它不起作用,它返回一个“意外的保留字”错误。

显然这不是一个大问题,我当然可以使用createClass语法,但我正在构建一个新的应用程序,并认为我会尝试使用最新和最好的。

谢谢! --Ivan

2 个答案:

答案 0 :(得分:3)

将您的第一行更改为:

App = class App extends React.Component {

将“App”放入全局命名空间。

答案 1 :(得分:1)

选中此demo并将universe:modules添加到您的模块中。尝试在app.jsx

中使用此功能
export default class App extends React.Component {
    render() {
        return <p>Hello World</p>
    }
}

在你的父母:

import App from "./app"