entry.jsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import * as React from "react";
  2. import { render, unmountComponentAtNode } from "react-dom"
  3. import { AppContainer } from "react-hot-loader"
  4. import { Provider } from 'react-redux';
  5. import { ConnectedRouter } from "react-router-redux"
  6. import { createBrowserHistory } from "history"
  7. import { configureStore, sagaMiddleware } from "./store"
  8. import { runApplicationSagas } from "./sagas"
  9. const history = createBrowserHistory();
  10. const store = configureStore(history);
  11. const getAppContainer = () => document.getElementById('app-container');
  12. const renderApp = () => {
  13. const App = require('./app').App;
  14. render(
  15. <AppContainer>
  16. <Provider store={store}>
  17. <ConnectedRouter history={history}>
  18. <App/>
  19. </ConnectedRouter>
  20. </Provider>
  21. </AppContainer>
  22. , getAppContainer());
  23. };
  24. if (__DEV__ && module.hot) {
  25. const hotReloadApp = () => renderApp();
  26. module.hot.accept('./app', () => {
  27. // Preventing the hot reloading error from react-router
  28. unmountComponentAtNode(getAppContainer());
  29. hotReloadApp();
  30. })
  31. }
  32. // runApplicationSagas(sagaMiddleware);
  33. renderApp();