configureStore.js 817 B

1234567891011121314151617181920212223242526272829303132
  1. import { createStore, applyMiddleware } from 'redux';
  2. import createSagaMiddleware from 'redux-saga';
  3. import { composeWithDevTools } from 'redux-devtools-extension';
  4. import rootReducer from '../redux/reducers';
  5. import rootSaga from '../redux/sagas';
  6. const sagaMiddleware = createSagaMiddleware();
  7. const bindMiddleware = (middleware) => {
  8. if (process.env.NODE_ENV !== 'production') {
  9. return composeWithDevTools(applyMiddleware(...middleware));
  10. }
  11. return applyMiddleware(...middleware);
  12. };
  13. const configureStore = (initialState = {}) => {
  14. const store = createStore(
  15. rootReducer,
  16. initialState,
  17. bindMiddleware([sagaMiddleware]),
  18. );
  19. store.runSagaTask = () => {
  20. store.sagaTask = sagaMiddleware.run(rootSaga);
  21. };
  22. store.runSagaTask();
  23. return store;
  24. };
  25. export default configureStore;