Blog>
Snippets

Initializing a Saga Middleware and Connecting to the Redux Store

Show how to create a saga middleware, integrate it with a Redux store, and then run the root saga.
import { configureStore } from '@reduxjs/toolkit';
import createSagaMiddleware from 'redux-saga';
import { rootReducer } from './reducers';
import { rootSaga } from './sagas';
Imports necessary modules and files. We import 'configureStore' from Redux Toolkit for easy configuration of the store, 'createSagaMiddleware' for creating the middleware, rootReducer as the main reducer combining all other reducers, and rootSaga which will contain all our sagas.
const sagaMiddleware = createSagaMiddleware();
Create the saga middleware instance which will be used to run our sagas.
const store = configureStore({
  reducer: rootReducer,
  middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(sagaMiddleware)
});
Configure the Redux store, adding our reducer and saga middleware to it. We use the 'configureStore' method from Redux Toolkit for this purpose, which simplifies the configuration process.
sagaMiddleware.run(rootSaga);
Finally, we run the root saga with our saga middleware. This starts the sagas which are then able to listen to dispatched actions and act accordingly.