2016-07-06 92 views
-1

我有一个requirejs应用程序,我想在我的页面中添加一个反应模块/组件。反应模块用babel/jsx编写。所以我使用AMD转换插件,并将它们连接成一个文件。如何将es6模块加载到amd架构中

当然现在每个反应js文件都有export default class/function -part。 其中一个反应文件有一个名为startUp(html)的函数,它需要一个html元素作为参数。这个html参数将被ReactDOM.render调用使用。

我的问题是,我无法访问的启动法在我的AMD模块:

////////////////////// REACT AND BABEL/ES6 CODE ///////////////////////// 
// react-module.js 
export default class MyReactContainer extends React.Component { 
    render() { 
     return <div>Just a DIV</div> 
    } 
} 

// react-main.js 
export default function startUp(html) { 
    ReactDOM.render(<MyReactContainer />, html); 
} 

//////////////////// EXISTING AMD MODULE ///////////////////////////////// 
// reactModuleIncluder.js 
define(['./react-main'], function(reactMain) { 

    function includeReactModule(html) { 
     reactMain(html); // Here I want to call the startUp method 
    } 

    return includeReactModule; 
}); 

任何想法,我能做些什么?或者这甚至有可能?

编辑:解决了这个问题。文件被转发并连接在一个单独的js文件中。现在我删除了concat-process,它工作。

+0

React代码是否先与Babel一起传输?起初看来,您似乎将ES6语法混合到ES5项目中。 –

+0

纯粹来自混合ES6和ES5代码和RequireJS的pov,没有理由你不应该这样做。如果你告诉Babel生产AMD模块,那么ES6代码的行为与ES5中编写的模块不同。由于我不使用它,所以不能说React。 – Louis

回答

-1

解决了这个问题。文件被转发并连接在一个单独的js文件中。现在我删除了concat-process,它工作。

相关问题