I prefer to make groups for reducers using combineReducers.
ill share my middleware setup, hope it's helpful for u!
store.config.js :
import rootReducer from '../_reducers'
export const history = createBrowserHistory()
export const store = configureStore();
export default function configureStore(preloadingState) {
const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(
rootReducer(history),
preloadingState,
composeEnhancer(
applyMiddleware(
routerMiddleware(history),
thunk,
),
),
)
return store
}
index.js (in reducers folder) :
const rootReducer = (history) => combineReducers({
router: connectRouter(history),
single: combineReducers({
post: postReducer,
guide: guideReducer,
course: courseReducer,
lesson: lessonReducer,
exercise: exerciseReducer,
}),
bank: combineReducers({
posts: postsReducer,
guides: guidesReducer,
courses: coursesReducer,
lessons: lessonsReducer,
exercises: exercisesReducer,
}),
melodition: playerReducer,
user: combineReducers({
profile: profileReducer,
favorites: favoriteReducer,
}),
snackbar: snackbarReducer,
auth: authReducer,
});
export default rootReducer;
Note: I did this on a large project with connected-react-router, maybe it's not good for every project.