-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,它工作。
React代码是否先与Babel一起传输?起初看来,您似乎将ES6语法混合到ES5项目中。 –
纯粹来自混合ES6和ES5代码和RequireJS的pov,没有理由你不应该这样做。如果你告诉Babel生产AMD模块,那么ES6代码的行为与ES5中编写的模块不同。由于我不使用它,所以不能说React。 – Louis