2016-04-11 14 views
1

ReactでSystemJS/JSPMを使用し始めました。私のアプリケーションでは、AMD、CJSなどのような一般的なJSモジュールフォーマットにはないサードパーティのライブラリを使用しています。これらのライブラリをインストールすると、それらはグローバルモジュールとしてインストールされます。 1つのライブラリのJSPM:それはDOM要素がその前に準備ができている期待してインポートするときSystemJSで遅延インポート

module.exports = require("npm:[email protected]/dist/js/app.js"); 

このライブラリには、いくつかの初期化コードの実行を持っています。私がインポートして、これと一緒にReactと一緒に使うと:

import adminlte from "adminlte"; 

export default class Root extends React.Component { 
    render() { 
     return (
      <div className="wrapper"> 
       <MainHeader /> 
       <MainSidebar /> 
       <MainContent /> 
       <MainFooter /> 
       <ControlSidebar /> 
      </div> 
     ); 
    } 
} 

これは機能しません。 ReactがDOMをブラウザにレンダリングする前に、ライブラリがインポートされ、その初期化コードが実行されるためだと思います。 DOMがReactによってレンダリングされるまで、サードパーティのライブラリのインポートを遅らせる方法はありますか?私はいくつかのライフサイクルイベントに見

はまだ適切に

最後に
+0

'import'文は、残念ながら条件付きでロードすることはできませんまたはオン・ザを提案してくださいので、それは、この問題を解決する最良の方法ではないかもしれません'require()'文のように飛ぶ – lux

答えて

1

主なアプリケーションである後System.import()を使用してサードパーティのライブラリをインポートすることで回避、これを行う方法がわからないなどcomponentDidMount、同様に反応するがすでにロード:

<script type="text/javascript"> 
    System.import("js/app/main.js") 
     .then(() => { 
      System.import("adminlte"); 
     });  
</script> 

誰がより良い方法を持っている場合は、それを

関連する問題