-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