Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何将es6模块加载到amd架构中_Reactjs_Requirejs_Amd_Jsx_Babeljs - Fatal编程技术网

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

Reactjs 如何将es6模块加载到amd架构中,reactjs,requirejs,amd,jsx,babeljs,Reactjs,Requirejs,Amd,Jsx,Babeljs,我有一个requirejs应用程序,我想在我的页面中附加一个react模块/组件。react模块是用babel/jsx编写的。因此,我使用AMD转换插件,并将它们合并到一个文件中 当然,现在每个react js文件都有导出默认类/函数的部分。 其中一个react文件有一个名为startUp(html)的函数,该函数需要一个html元素作为参数。ReactDOM.render调用将使用此html参数 我的问题是我无法访问AMD模块中的启动方法: ////////////////////// REA

我有一个requirejs应用程序,我想在我的页面中附加一个react模块/组件。react模块是用babel/jsx编写的。因此,我使用AMD转换插件,并将它们合并到一个文件中

当然,现在每个react js文件都有导出默认类/函数的部分。 其中一个react文件有一个名为
startUp(html)
的函数,该函数需要一个html元素作为参数。
ReactDOM.render
调用将使用此html参数

我的问题是我无法访问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;
});
///REACT和BABEL/ES6代码/////////////////////////
//react-module.js
导出默认类MyReactContainer扩展React.Component{
render(){
退一分
}
}
//react-main.js
导出默认函数启动(html){
render(,html);
}
////////////////////现有AMD模块/////////////////////////////////
//reactModuleIncluder.js
定义(['./react main'],函数(react main){
函数includeActModule(html){
reactMain(html);//这里我想调用startUp方法
}
返回includereact模块;
});
知道我能做什么吗?或者这可能吗


编辑:解决了这个问题。文件被传输并连接在一个js文件中。现在我删除了concat进程,它可以工作了

解决了这个问题。文件被传输并连接在一个js文件中。现在我删除了concat进程,它可以工作了

反应码是先用巴贝尔传送的吗?乍一看,似乎您正在将ES6语法混合到ES5项目中。纯粹从混合ES6和ES5代码以及RequireJS的角度来看,您没有理由不能这样做。如果您让巴贝尔生产AMD模块,您的ES6代码从一开始就不会与ES5中编写的模块有任何不同。因为我不使用React,所以不能说任何关于React的内容。