私はrequirejsアプリケーションを持っており、反応モジュール/コンポーネントをマイページに追加したいと思います。反応モジュールはbabel/jsxで書かれています。だから私はAMDの変換プラグインを使用し、私は1つのファイルにそれらをconcat。am3アーキテクチャにes6モジュールをロードする方法
もちろん、それぞれの反応するjsファイルにはexport default class/function
-partがあります。 反応ファイルの1つに、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;
});
私が何ができるか任意のアイデア?それともこれも可能ですか?
EDIT:問題を解決しました。ファイルは1つのjsファイルにトランケートされ、連結されました。今、私は連結処理を取り除き、それは機能します。
最初に反応コードがバベルで蒸解されていますか?最初は、ES6の構文をES5プロジェクトに混ぜているようです。 –
純粋にES6とES5コードとRequireJSを混在させているので、それをすることができない理由はありません。あなたがBabelにAMDモジュールを生産するように言うと、ES6コードはES5で書かれたモジュールとは動作が異なります。私はそれを使用しないので、リアクションについて何も言えません。 – Louis