2016-10-13 13 views
0

私は以下のコンポーネントを持っています。 domの製品モジュールをレンダリングせず、コンソールにエラーも表示しません。反応成分が働いていないWebpack require.ensure(コード分割)?

ReactDOM.render(<ProductModule/>,document.getElementById('product-container'));を使用している場合は動作しています。

import React, {Component} from 'react'; 
import ReactDOM from 'react-dom'; 
class ProductModuleWrapper extends Component { 
    constructor(props) { 
    } 

    render() { 
     return (
      <div className="product-container"> 
       {this.renderProductModules()} 
      </div> 
     ); 
    } 

    renderProductModules() { 
     require.ensure([],(require) => { 
      var ProductModule = require('../ProductModule').default; 
      return ProductModule; 
     },'productmodule'); 
    } 
} 

編集:

私はこれがコールを確実に必要との非同期な性質とは何かだと思う、コンポーネントの状態や小道具を持っている場合

+1

それは製品モジュールをレンダリングしていますか?現時点では何も返されていません。 'return require.ensure ...' –

+0

ありがとうございます。しかし、 'ReactDOM.render'に 'QuickShopProductModule'をラップしていくつかのdivにレンダリングすると、正常なコンポーネントと動的にロードされたコンポーネントの違いが見つかりました後者には所有者プロパティはありません。 –

答えて

1

リアクトのみ再レンダリングします助けてください更新されました。あなたの例では、いずれも非同期的にフェッチされるのでコンポーネントをレンダリングしません。

私はこのブログの記事で説明したように、あなたがthis.stateを使用することをお勧めします:あなたは `renderProductModules`関数からそれを返す場合http://blog.netgusto.com/asynchronous-reactjs-component-loading-with-webpack/

+0

私はこれを既に理解しています。返信いただきありがとうございます:-) –

関連する問題