2016-10-13 2 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

это делают ли модуль продукта, если вы вернуть его из 'функции renderProductModules'? На данный момент ты ничего не возвращаешь. 'return require.ensure ...' –

+0

Спасибо, нет, но он будет работать, если я обернурую «QuickShopProductModule» в «ReactDOM.render» и вынесу в какой-нибудь div, я нашел один разностный компонент btw normal и динамически загружаемый компонент, который у более поздней версии нет собственности владельца. –

ответ

1

React будет только вновь сделать, если состояние или реквизита компонента есть был обновлен. В вашем примере ни один из них не будет отображать компонент, поскольку он извлекается асинхронно.

Я рекомендую вам использовать this.state, как описано в этом блоге: http://blog.netgusto.com/asynchronous-reactjs-component-loading-with-webpack/

+0

Я уже понял это, спасибо за ответ :-) –

Смежные вопросы