2016-07-06 40 views
-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,它工作。

+0

React代碼是否先與Babel一起傳輸?起初看來,您似乎將ES6語法混合到ES5項目中。 –

+0

純粹來自混合ES6和ES5代碼和RequireJS的pov,沒有理由你不應該這樣做。如果你告訴Babel生產AMD模塊,那麼ES6代碼的行爲與ES5中編寫的模塊不同。由於我不使用它,所以不能說React。 – Louis

回答

-1

解決了這個問題。文件被轉發並連接在一個單獨的js文件中。現在我刪除了concat-process,它工作。

相關問題