redux - 为什么我在 redux 中得到 `middleware is not a function'?

标签 redux react-redux

我正在设置一个简单的 React/Redux 应用程序。这是我的设置:

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>
    );
  }
}

此外,这是我的 reducer :

var {combineReducers} = require('redux')

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

当我运行我的应用程序时,出现此错误:

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

我错过了什么?

最佳答案

问题看起来可能出在这里:

var thunkMiddleware = require('redux-thunk')

您的中间件——这里是 thunkMiddleware——不是一个函数,这表明它不是从包中提取的。你应该尝试:

var thunkMiddleware = require('redux-thunk').default

或者,尝试使用 ES6 模块语法(因为您已经在使用 ES6 功能):

从 'redux-thunk' 导入 thunkMiddleware

关于redux - 为什么我在 redux 中得到 `middleware is not a function'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081111/

相关文章:

javascript - localStorage突然坏了

javascript - React Redux - 尝试使用 React-DnD 和 mapDispatchToProps 时遇到问题

javascript - 如何正确捕获 axios get 请求中的错误?

angular - 调度多个 Action 并等待完成发送下一个

javascript - 为什么 Google map 不重新加载新坐标和列表的其余部分详细信息?

react-native - 我如何在 React Native 中使用 connectStyle 和 connect?

reactjs - 如何在 React-Native 中渲染 svg 图像?

javascript - 尝试让操作和 reducer 工作时出错

javascript - React-Redux - 如何在不导致不相关组件不必要的重新渲染的情况下更新一个状态

reactjs - 单选按钮不起作用