2016-08-29 5 views
4

Ich bin auf einem Universal-Arbeits Reagieren Projekt, mein Client Einstiegspunkt ist:wepback 2 hot reload nicht rerender

import React from 'react' 
 
import {render} from 'react-dom' 
 
import {Provider} from 'react-redux' 
 
import {AppContainer} from 'react-hot-loader' 
 
import {Router, browserHistory} from 'react-router' 
 
import {syncHistoryWithStore} from 'react-router-redux' 
 
import {addLocaleData} from 'react-intl' 
 
import it from 'react-intl/locale-data/it' 
 
import en from 'react-intl/locale-data/en' 
 
import IntlProvider from 'shared/containers/IntlProvider' 
 
import configureStore from 'shared/configureStore' 
 
import routes from 'shared/routes' 
 
import {isDev, isLive} from 'shared/config' 
 

 
[en, it].forEach(addLocaleData) 
 

 
const hook = document.getElementById('app') 
 
const initialState = JSON.parse(hook.getAttribute('data-initial-state')) 
 
const store = configureStore(initialState) 
 
const history = syncHistoryWithStore(browserHistory, store) 
 
let content = (
 
    <Provider store={store}> 
 
    <IntlProvider key="intl"> 
 
     <Router history={history}> 
 
     {routes} 
 
     </Router> 
 
    </IntlProvider> 
 
    </Provider> 
 
) 
 

 
if (isLive) { 
 
    content = <AppContainer>{content}</AppContainer> 
 
} 
 

 
function renderApp() { 
 
    render(content, hook) 
 
} 
 

 
if (isLive) { 
 
    module.hot.accept('./index.js') 
 
    module.hot.accept('../shared/routes', renderApp) 
 
} 
 

 
renderApp()

Auf Komponentenänderungen, die reload scheint zu funktionieren, aber keine Render wird angewendet .. vielleicht passiert es, bevor der heiße reload Trick passiert?

console output

HINWEIS meine Routen Konfiguration ist klassisch nicht dymanic Routen für jetzt.

Antwort

0

hatte ich das gleiche Problem, weil ich

}

if (module.hot) { 
module.hot.accept(
    "./App", 
    () => { 
     const NextApp = require("./App").App; // THIS LINE 
     render(NextApp); 
    }, 
); 
ersetzen Code für vergaßen nur Module hinzufügen