Me quedé con este error:
Error no detectado: se esperaba que el reductor de raíz fuera una función. En cambio, recibió:''
Intenté todas las respuestas que pude encontrar, pero ninguna funcionó, espero que puedan ayudarme.
Mi rootReducer
import {combineReducers} from 'redux' import changeCategoryReducer from './changeCategoryReducer' import categoryListReducer from './categoryListReducer' import productListReducer from './productListReducer' import cartReducer from './cartReducer' import saveProductReducer from './saveProductReducer' const rootReducer = combineReducers({ changeCategoryReducer, categoryListReducer, productListReducer, cartReducer, saveProductReducer }); export default rootReducer;configurar Tienda
import {createStore, applyMiddleware} from 'redux' import * as rootReducer from './index.js' import thunk from 'redux-thunk' export default function configureStore(){ return createStore(rootReducer, applyMiddleware(thunk)) }índice.js
import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './components/root/App'; import reportWebVitals from './reportWebVitals'; import 'bootstrap/dist/css/bootstrap.min.css'; import { Provider } from 'react-redux' import configureStore from './redux/reducers/configureStore' import 'alertifyjs/build/css/alertify.min.css' import { BrowserRouter } from 'react-router-dom' const store = configureStore(); const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <BrowserRouter> <Provider store={store}> <App /> </Provider> </BrowserRouter> </React.StrictMode> ); reportWebVitals();No estás importando correctamente tu rootReducer en la creación de la tienda. En lugar de importar * , debe importar la exportación default :
import {createStore, applyMiddleware} from 'redux' import rootReducer from './index.js' // <-- change here import thunk from 'redux-thunk' export default function configureStore(){ return createStore(rootReducer, applyMiddleware(thunk)) } usar import * as rootReducer from './index.js' significa que terminas con un objeto como:
rootReducer: { default: createReducer(...) }