Why am I getting `middleware is not a function' in redux?

Viewed 9244

I am setting up a simple React/Redux app. Here is my setup:

var {createStore, applyMiddleware } = require('redux')
var thunkMiddleware = require('redux-thunk')
var store = createStore(
  reducers,
  applyMiddleware(thunkMiddleware)
)

class App extends React.Component {
  render() {
    return (
      <Provider store={store}>
        <HashRouter>
          <div className="app">
            <Route exact path='/' component={Home}/>
            <Route path='/Test' component={Test}/>
          </div>
        </HashRouter>
      </Provider>
    );
  }
}

Also, here are my reducers:

var {combineReducers} = require('redux')

const carlist = (state=[], action) => {
  switch (action.type){
    case 'LOAD':
      return action.test
    default:
      return state
  }
}
module.exports = combineReducers({carlist})

When I run my app, I get this error:

applyMiddleware.js:39 Uncaught TypeError: middleware is not a function

What am I missing?

2 Answers

I had this error when using redux-logger

I had just upgraded my packages and change

import createLogger from 'redux-logger'

to

import { createLogger } from 'redux-logger'
Related