如何将es6模块加载到amd架构中

时间:2016-07-06 15:54:14

标签: reactjs requirejs amd jsx babel

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

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

我的问题是我无法访问AMD模块中的startUp-method:

////////////////////// 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并且它有效。

1 个答案:

答案 0 :(得分:-1)

解决了这个问题。文件在一个单独的js文件中被转换和连接。现在我删除了concat-process并且它有效。