コード例 #1
0
export default function configureStore(initialState) {
  const sagaMiddleware = createSagaMiddleware();

  const store = createStore(
    rootReducer,
    initialState,
    compose(
      applyMiddleware(
        sagaMiddleware,
        createLogger()
      ),
      DevTools.instrument()
    )
  );

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      //eslint-disable-next-line
      const nextRootReducer = require('../reducers').default;
      store.replaceReducer(nextRootReducer);
    });
  }

  store.runSaga = sagaMiddleware.run;
  store.close = () => store.dispatch(END);
  return store;
}
コード例 #2
0
export default function configureStore() {
  let finalCreateStore;

  if (__DEVELOPMENT__ && __CLIENT__ && __DEVTOOLS__) {
    const DevTools = require('containers/DevTools/DevTools'); // eslint-disable-line global-require
    finalCreateStore = compose(
      applyMiddleware(socketMidlleware(socket)),
      window.devToolsExtension ? window.devToolsExtension() : DevTools.instrument(),
    )(createStore);
  } else {
    finalCreateStore = compose(
      applyMiddleware(socketMidlleware(socket))
    )(createStore);
  }

  const store = finalCreateStore(reducer);

  socket.on('state', state => {
    store.dispatch(setState(state));
  });

  if (__DEVELOPMENT__ && module.hot) {
    module.hot.accept('store/reducers', () => {
      const next = require('store/reducers'); // eslint-disable-line global-require
      store.replaceReducer(next);
    });
  }
  return store;
}